.NET4.0 验证模式变化,导致之前版本ValidateRequest="false"失效
作者:Jack.Xu 日期:2010-05-14
在.NET之前的版本中,请求验证是默认启用的,但是它只对页面请求有效(请求.aspx页面),并且也只是在页面被请求时验证。
但是在.NET 4.0中,请求验证功能被提前到IHttpHandler.BeginRequest方法被请求之前,这也就意味着所有进入.NET请求通道的所有的HTTP请求都将会被进行请求内容合法性的验证,包括有的自定义HttpHandler,WebService请求,甚至于利用自定义Http Module进行自定义请求处理程序。
请求验证处理被提前导致我们在页面中ValidateRequest=false失效,无法阻止程序不去验证请求的输入内容了。因为还没有实例化HttpHandler,验证器无法得到请求的页面是否禁用了验证请求。
在.NET4.0中,没有提供地方禁用这个验证功能。
.NET只允许我们通过在web.config中配置使用ASP.NET 2.0的请求验证行为:
<httpRuntime requestValidationMode=”2.0″ />
评论: 0 | 引用: 0 | 查看次数: 80
发表评论
上一篇
下一篇


文章来自:
Tags:
相关日志:






