ValidateRequest=false 不在.net2.0 中该怎么办?
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 中该怎么办?相关推荐
- ASP.NET2.0中的ClientScriptManager 类用法—如何添加客户端事件!
在ASP.NET2.0中,ClientScriptManager 类通过键 String 和 Type 唯一地标识脚本.具有相同的键和类型的脚本被视为重复脚本.因此,我们可以使用脚本类型来避免混淆可能 ...
- 深度解析ASP.NET2.0中的Callback机制
callback的一般使用方法还算简单,直接参照msdn的帮助和范例就足够了.但是想要真正用好.用精,或者想开发一些基于callback机制的WEB组件,那么,就要先深入了解callback的实现机制 ...
- 在ASP.Net2.0中使用UrlRewritingNet实现链接重写(转)
在ASP.Net2.0中使用UrlRewritingNet实现链接重写 很多时候我们需要链接转向(Url Rewriting),例如二级域名转向.文章访问链接等场合. 让我们看两个例子: 1 你现在看 ...
- 在ASP.Net2.0中使用UrlRewritingNet实现链接重写
在ASP.Net2.0中使用UrlRewritingNet实现链接重写 很多时候我们需要链接转向(Url Rewriting),例如二级域名转向.文章访问链接等场合. 让我们看两个例子: 1 你现在看 ...
- ASP.NET2.0中的ClientScriptManager 类用法—如何添加客户端事件
在ASP.NET2.0中,ClientScriptManager 类通过键 String 和 Type 唯一地标识脚本.具有相同的键和类型的脚本被视为重复脚本.因此,我们可以使用脚本类型来避免混淆可能 ...
- ASP.NET2.0中themes、Skins轻松实现网站换肤!
ASP.NET2.0中themes.Skins轻松实现网站换肤! 可能有些朋友还不是很清楚themes.skins.下面先介绍下themes.skins.. 一.简介: 一看Themes.Skins这 ...
- 在.NET2.0中解析Json和Xml
在.NET2.0中解析Json和Xml 在.NET解析json有很多方法,这里介绍最简单也用的最多的一种. 一.添加引用 解析Json,先下载开源控件 Newtonsoft.Json.dll 下载地址 ...
- ASP.NET2.0中的全球化与本地化UICulture,Culture
ASP.NET2.0中的全球化与本地化UICulture,Culture 来源:转载 日期:2007-2-28 14:59:01 阅读:324 评论:0 一.简介 全球化和本地化是每一位开发者在创 ...
- .net2.0中SqlBulkCopy批量复制数据出错原因分析!
在项目后台数据库选择SqlServer,进行批量复制数据时,.net2.0中提供的SqlBulkCopy不失为一个好的选择,性能相当可观;最近亲手实验一把,效果不错,大家可以参见http://www. ...
最新文章
- asp.net 服务器应用程序不可用
- OpenSearchServer 1.4 RC4 发布
- 关于c++的文件编码的研究
- Java继承_java继承
- VTK:几何对象之OpenVRSphere
- 镜像服务器文件实时监控同步程序
- java微妙_编码Java时的10个微妙的最佳实践
- bzoj 1694 1742: [Usaco2005 nov]Grazing on the Run 边跑边吃草(DP)
- neo4j︱Cypher 查询语言简单案例(二)
- access 数据库和mysql_access数据库和sql数据库你必须知道的区别
- URI和URL差别以及相对路径和绝对路径的差别
- 小程序之模版消息通知
- 机器认知、人机交互、边缘计算……在这里,他们谈论了关于AI的关键议题
- 彻底弄懂GMT、UTC、时区和夏令时
- springboot2.0启动报错The APR based Apache Tomcat Native library which allows optimal performance in ...
- Eigen中四元数Quaterniond的初始
- oracle 毫秒时间换mysql_Mysql与Oracle常用时间格式的转换
- 解决ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
- php smart str,致命错误:ext/standard/php_smart_str.h:没有那个文件或目录
- 如何设计神经网络结构图,神经网络设计与实现
热门文章
- Robbin关于App class loader的总结(转帖)
- git由于网络原因导致 please make sure you have the correct access rights and the repository exists
- html表单左侧文字对齐,CSS图标文字对齐和表单输入框文字对齐兼容
- 谷歌不支持调用摄像头麦克风_谷歌突然推出Android 11开发者预览版 新版带来部分新功能和改进...
- python123不能登录_python用户登录,密码错误3次则锁定
- 现在事业单位好不好考?
- 对于大多数的中小微企业,产品是你成功的1.0阶段
- 有些店铺340块3T希捷硬盘,有什么猫腻吗?
- go使用redis——redigo使用HMSET存储结构体
- HTML中常见问题汇总贴