ValidateRequest =“false”的替代方案

时间:2012-10-10 17:43:04

标签: asp.net http-post validate-request

有没有办法防止错误“从客户端检测到潜在危险的Request.Form值”,而不是设置ValidateRequest="false"

更新:我删除了“页面上”部分。我想在页面或web.config中根本不使用ValidateRequest="false"

4 个答案:

答案 0 :(得分:2)

查看新的ASP.NET 4.5 request validation features

如果您设置

<httpRuntime requestValidationMode="4.5" ... />

在您的web.config中,只有在您访问它们时才会验证值。这称为延迟验证

您也可以通过

获取未经验证的值
var s = context.Request.Unvalidated.Form["forum_post"];

答案 1 :(得分:1)

1您还可以在输入中添加javascript验证

2您可以添加自定义验证器

答案 2 :(得分:1)

是的,您可以在web.config中全局完成。

如果您正在运行.net 4.0,则可以将其添加到您的web.config

<httpRuntime requestValidationMode="2.0"/>

或者您可以添加此

<pages validateRequest="false" /> 

答案 3 :(得分:0)

您可以通过编辑web.config文件

为整个应用程序禁用它
<configuration>
   <system.web>
      <pages validateRequest="false" />
   </system.web>
</configuration>

知道你是想要只是抑制错误,还是想要防止它被提升开始,这将有所帮助。如果您想阻止它,请在提交表单之前清理您的输入(使用javascript或验证器)。