.net 4.0 ValidateRequest="false" 无效

     昨天一客户的后台中的在线编辑器中的内容提交时,报错。客户的操作系统是韩文的,不过基本上看出错误是“提交的代码中包含危险字符",根据以前的经验,直接在页面上加了个validateRequest="false",结果再次提交还是报错。在本地测试没问题的,为什么到了服务器上就不好用了呢?难道和文件编码有问题,中文的东西在韩文系统下有问题?编码重置为utf-8编码,还是不行。别的区别也就只有客户的服务器上的Framework版本是4.0,开发的机器上是vs2008带的Framework3.5,难道和这个有关系?
     查了一下,一试,还真是和这个有关系。当你在安装了.NET Framework 4.0以上版本后,当你的应用程序以.NET Framework 4.0为框架版本,你的任意服务器请求,都将被进行服务器请求验证(ValidationRequest),这不仅包括ASP.NET,同时也包括Web Services等各种HTTP请求,不仅仅针对aspx页面,也针对HTTP Handler,HTTP Module等,因为这个验证(Valify)的过程,将会发生在BeginRequest事件之前。
    问题的解决方案就是
在全局级别(Web.config中)设置
<configuration>
    <system.web>
        <httpRuntime requestValidationMode="2.0">
    就是使用2.0版本的请求验证模式,就不会再报这个错了。
    网上原文地址:
http://apps.hi.baidu.com/share/detail/10878963

你可能感兴趣的:(.net 4.0 ValidateRequest="false" 无效)