有没有办法防止错误“从客户端检测到潜在危险的Request.Form值”,而不是设置ValidateRequest="false"
?
更新:我删除了“页面上”部分。我想在页面或web.config中根本不使用ValidateRequest="false"
。
答案 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或验证器)。