ValidateRequest=false 不在.net2.0 中该怎么办?

ASP.NET请求验证功能可以给我提供应用程序的保存,避免站点受到XSS的攻击。

但是在一些情况下,我们需要禁用这个功能,比如我们需要使用HtmlEditor来让用户输入一些HTML文本,这时候ASP.NET 2.0允许我们可以通过在web.config system.web 节点中设置validateRequest="false"。

或者在MVC中,我们可以通过在Controller或者Action上设置[ValidateRequest(false)]这个特性来达到禁用的上的。

但是在当你把站点从旧版本升级到ASP.NET 4.0后,你会发现,即使你这样做,仍然会提示你这样的一个异常“A potentially dangerous Request.Form value was detected from the client”。

该如何来解决这个问题呢?

其实ValidateRequest=false 失效的主要原因是ASP.NET 4.0页面验证在HttpHandler实例化之前,则验证器无法获得ValidateRequest的值。关于HttpHandler可以参照这篇博文:http://www.cnblogs.com/gis_zhou/articles/1589773.html--谢谢他

在之前的ASP.NET版本中,请求验证是默认启用的,但是它只对页面请求有效(请求.aspx页面),并且也只是在页面被请求时验证。

但是在ASP.NET 4.0中,请求验证功能被提前到IHttpHandler.BeginRequest这个方法被请求之前,这也就意味着所有进入ASP.NET请求通道的所有的HTTP请求都将会被进行请求内容合法性的验证,包括有的自定义HttpHandler,WebService请求,甚至于利用自定义Http Module进行自定义请求处理程序。 请求验证处理被提前的后果就是导致我们在页面,或者Controller中设置ValidateRequest=false,将会失效,无法阻止程序不去验证请求的输入内容了。因为这样做后,验证器无法得到请求的页面是否禁用了验证请求,因为还没有实例化HttpHandler。并且在ASP.NET4.0中,并没有提供给我一个地方去禁用这个验证功能。但是出于兼容性的考虑,ASP.NET允许我们通过在web.config中配置使用ASP.NET 2.0的请求验证行为:<httpRuntime requestValidationMode=”2.0″ />。

转载于:https://www.cnblogs.com/EntityFramework/archive/2013/04/22/3035078.html

ValidateRequest=false 不在.net2.0 中该怎么办?相关推荐

  1. ASP.NET2.0中的ClientScriptManager 类用法—如何添加客户端事件!

    在ASP.NET2.0中,ClientScriptManager 类通过键 String 和 Type 唯一地标识脚本.具有相同的键和类型的脚本被视为重复脚本.因此,我们可以使用脚本类型来避免混淆可能 ...

  2. 深度解析ASP.NET2.0中的Callback机制

    callback的一般使用方法还算简单,直接参照msdn的帮助和范例就足够了.但是想要真正用好.用精,或者想开发一些基于callback机制的WEB组件,那么,就要先深入了解callback的实现机制 ...

  3. 在ASP.Net2.0中使用UrlRewritingNet实现链接重写(转)

    在ASP.Net2.0中使用UrlRewritingNet实现链接重写 很多时候我们需要链接转向(Url Rewriting),例如二级域名转向.文章访问链接等场合. 让我们看两个例子: 1 你现在看 ...

  4. 在ASP.Net2.0中使用UrlRewritingNet实现链接重写

    在ASP.Net2.0中使用UrlRewritingNet实现链接重写 很多时候我们需要链接转向(Url Rewriting),例如二级域名转向.文章访问链接等场合. 让我们看两个例子: 1 你现在看 ...

  5. ASP.NET2.0中的ClientScriptManager 类用法—如何添加客户端事件

    在ASP.NET2.0中,ClientScriptManager 类通过键 String 和 Type 唯一地标识脚本.具有相同的键和类型的脚本被视为重复脚本.因此,我们可以使用脚本类型来避免混淆可能 ...

  6. ASP.NET2.0中themes、Skins轻松实现网站换肤!

    ASP.NET2.0中themes.Skins轻松实现网站换肤! 可能有些朋友还不是很清楚themes.skins.下面先介绍下themes.skins.. 一.简介: 一看Themes.Skins这 ...

  7. 在.NET2.0中解析Json和Xml

    在.NET2.0中解析Json和Xml 在.NET解析json有很多方法,这里介绍最简单也用的最多的一种. 一.添加引用 解析Json,先下载开源控件 Newtonsoft.Json.dll 下载地址 ...

  8. ASP.NET2.0中的全球化与本地化UICulture,Culture

    ASP.NET2.0中的全球化与本地化UICulture,Culture 来源:转载 日期:2007-2-28 14:59:01 阅读:324 评论:0   一.简介 全球化和本地化是每一位开发者在创 ...

  9. .net2.0中SqlBulkCopy批量复制数据出错原因分析!

    在项目后台数据库选择SqlServer,进行批量复制数据时,.net2.0中提供的SqlBulkCopy不失为一个好的选择,性能相当可观;最近亲手实验一把,效果不错,大家可以参见http://www. ...

最新文章

  1. asp.net 服务器应用程序不可用
  2. OpenSearchServer 1.4 RC4 发布
  3. 关于c++的文件编码的研究
  4. Java继承_java继承
  5. VTK:几何对象之OpenVRSphere
  6. 镜像服务器文件实时监控同步程序
  7. java微妙_编码Java时的10个微妙的最佳实践
  8. bzoj 1694 1742: [Usaco2005 nov]Grazing on the Run 边跑边吃草(DP)
  9. neo4j︱Cypher 查询语言简单案例(二)
  10. access 数据库和mysql_access数据库和sql数据库你必须知道的区别
  11. URI和URL差别以及相对路径和绝对路径的差别
  12. 小程序之模版消息通知
  13. 机器认知、人机交互、边缘计算……在这里,他们谈论了关于AI的关键议题
  14. 彻底弄懂GMT、UTC、时区和夏令时
  15. springboot2.0启动报错The APR based Apache Tomcat Native library which allows optimal performance in ...
  16. Eigen中四元数Quaterniond的初始
  17. oracle 毫秒时间换mysql_Mysql与Oracle常用时间格式的转换
  18. 解决ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
  19. php smart str,致命错误:ext/standard/php_smart_str.h:没有那个文件或目录
  20. 如何设计神经网络结构图,神经网络设计与实现

热门文章

  1. Robbin关于App class loader的总结(转帖)
  2. git由于网络原因导致 please make sure you have the correct access rights and the repository exists
  3. html表单左侧文字对齐,CSS图标文字对齐和表单输入框文字对齐兼容
  4. 谷歌不支持调用摄像头麦克风_谷歌突然推出Android 11开发者预览版 新版带来部分新功能和改进...
  5. python123不能登录_python用户登录,密码错误3次则锁定
  6. 现在事业单位好不好考?
  7. 对于大多数的中小微企业,产品是你成功的1.0阶段
  8. 有些店铺340块3T希捷硬盘,有什么猫腻吗?
  9. go使用redis——redigo使用HMSET存储结构体
  10. HTML中常见问题汇总贴