我在 Web 表单中有一个文本框,管理员用户可以在其中添加要提交的 HTML 以进入数据库。
过去,我总是在提交 HTML 数据时添加ValidateRequest="false"
以Page
避免验证错误。但是,使用此网站,即使ValidateRequest
设置为false
,我也会收到以下错误:
从客户端检测到潜在危险的 Request.Form 值
我听说这与 .NET 4 安全性有关,但这是一个 ASP.NET 3.5 应用程序。
为什么我仍然收到此错误?
我在 Web 表单中有一个文本框,管理员用户可以在其中添加要提交的 HTML 以进入数据库。
过去,我总是在提交 HTML 数据时添加ValidateRequest="false"
以Page
避免验证错误。但是,使用此网站,即使ValidateRequest
设置为false
,我也会收到以下错误:
从客户端检测到潜在危险的 Request.Form 值
我听说这与 .NET 4 安全性有关,但这是一个 ASP.NET 3.5 应用程序。
为什么我仍然收到此错误?
RequestValidation 在 .Net 4.0 中发生了重大变化。
采取很多措施:http: //msdn.microsoft.com/en-us/library/system.web.configuration.httpruntimesection.requestvalidationmode (VS.100).aspx
要解决您的问题,您必须在 weh.config 中的 httpRuntime 中将 requestValidationMode 设置为小于 4.0 的值,如下所示:
<httpRuntime requestValidationMode="2.0" />
如果您对将请求验证设置回 .net 2 感到紧张 - 只需在 Web 配置中添加一个位置标志(以及在您希望允许特殊字符进入的文本框中设置 ValidateRequestMode="Disabled")。web.config 中的位置设置是这样的:
<location path="login.aspx">
<system.web>
<httpRuntime requestValidationMode="2.0" />
</system.web>
</location>
在此处查看优秀的文章和评论:https ://weblog.west-wind.com/posts/2010/Aug/19/RequestValidation-Changes-in-ASPNET-40