.NET4.0 验证模式变化,导致之前版本ValidateRequest="false"失效

在.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″ />



文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: 80
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭