1

Is there a way to prevent the error "A potentially dangerous Request.Form value was detected from the client" other than setting ValidateRequest="false"?

Update: I removed the "on the page" part. I'd like to not use ValidateRequest="false" at all, on the page or in web.config.

4

4 回答 4

2

查看新的ASP.NET 4.5 请求验证功能

如果你设置

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

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

您也可以通过以下方式获得未经验证的值

var s = context.Request.Unvalidated.Form["forum_post"];
于 2012-10-10T17:47:32.120 回答
1

是的,您可以在 web.config 中全局执行此操作。

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

<httpRuntime requestValidationMode="2.0"/>

或者你可以添加这个

<pages validateRequest="false" /> 
于 2012-10-10T17:49:02.443 回答
1

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

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

于 2012-10-10T17:45:12.480 回答
-1

您可以通过编辑 web.config 文件为整个应用程序禁用它

<configuration>
   <system.web>
      <pages validateRequest="false" />
   </system.web>
</configuration>

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

于 2012-10-10T17:48:39.237 回答