/*十有三博客*/
  • 首页
  • 关于本站
  • 网站地图
  • RSS订阅

ASP.NET中Page设置ValidateRequest="false" 无效

2015-01-17 十有三 0 浏览:4082 .NET技术 ASP.NET

本文记录了在ASP.NET项目中,设置了Page属性ValidateRequest="false"但是无效的解决方法,并且说明了造成HTTP请求验证设置无效的原因。

ValidateRequest请求验证设置没有效果的原因

出现此问题一般是由于ASP.NET项目使用的.Net Framework版本是4.0以上的版本,4.0版本的验证模式和之前3.5、3.0和2.0的不一样,是全局验证,即所有的HTTP请求都会触发请求验证,防止遭到恶意的攻击。而且4.0默认的验证模式比页面Page元素和配置文件的优先级还要高,所以在在页面中设置ValidateRequest属性就不会起到作用。

PS: .Net Framework 4.0以上的requestValidationMode都是4.0,反之以下的都是2.0,目前只有这两种模式。

解决配置文件和Page元素设置验证请求不起作用的步骤

根据上面的问题原因,只要在web.config配置文件中将项目的验证模式设置成2.0即可,具体代码如下:

<system.web>
  <httpRuntime requestValidationMode="2.0"/>
</stytem.web>

另外要注意的是,在ASP.NET MVC中ValidateInput(false)属性设置无效也是这个原因!

其他相关资料

更多详情可以参考这两篇文章:

  • 解决ASP.NET“从客户端***中检测到有潜在危险的 Request.Form值。”错误
  • 微软MSDN的资料:HttpRuntimeSection.RequestValidationMode 属性

这里顺便截取MSDN上关于配置文件requestValidationMode的部分说明:

4.0(默认)。 HttpRequest  对象在内部设置一个标志,该标志指示每当访问 HTTP 请求数据时应触发请求验证。 这可保证在请求期间访问数据(如 cookie 和 URL)之前触发请求验证。 配置文件中页元素(如果有的话)的请求验证设置或单独页面中的 @ 页指令的请求验证设置将被忽略。

•2.0. 仅对网页(而不是对所有 HTTP 请求)启用请求验证。 此外,配置文件中的 pages 元素(如果有的话)的请求验证设置或单独页中的 @ Page 指令的请求验证设置用来确定要验证哪些页请求。


作者:十有三

出处:https://shiyousan.com/post/635570614699464314

版权声明:本文采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。欢迎转载本文,转载请声明出处或保留此段声明。


  • 上一篇: .Net Framework4.0 ashx页面报错:检测到有潜在危险的Request.Form值
  • 下一篇: HttpException (0x80004005): 无法连接到 SQL Server 会话数据库。

相关文章
  • ASP.NET MVC AJAX调用没有反应和返回结果
  • 在唯一密钥属性“fileExtension”设置为“.”时,无法添加类型为“mimeMap”的重复集合项
  • ASP.NET MVC全局异常处理和捕获的思路
  • C# List.Join方法
  • 解决Visual Studio 起始页中"最近的项目"没有记录最近使用的项目和解决方案
  • ASP.NET MVC移除URL后面自动加上的AspxAutoDetectCookieSupport=1
发表评论
记住昵称

文章分类

.NET技术 122 数据库 24 Web前端 21 网站建设运维 33 操作系统与应用 67 程序猿日常 11 开发工具 11 其他随笔 13

文章标签

ASP.NET ASP.NET MVC C# CSS HTML IIS Javascript Linux MongoDB MySql SQL SQL Server Visual Studio Windows系统 版本控制系统 插件工具 道学 佛经 服务器 搞笑娱乐 好文分享 软件应用 生活知识 诗词 手机问题 随笔 网络知识 网站设计优化 网站维护 养生保健 异常处理 硬件设备 游戏攻略

热门文章

  • VS重构重命名的快捷键
  • 解决IE11安装升级失败和在安装前需要更新的问题
  • 林蛋大与楚中天,朱肚皮与朱月坡
  • jquery ajax error函数和及其参数详细说明
  • Win10中如何设置Hyper-V的网络让虚拟机也能上外网

推荐文章

  • 解析ASP.NET中获取不到用户名及注销后User.Identity.IsAuthenticated值依然为true的原因
  • 解决ASP.NET“从客户端***中检测到有潜在危险的 Request.Form值。”错误
  • C# List<string>如何根据分隔符合并成字符串?
  • 解决asp.net中 jquery ajax调用一般处理程序ashx出现"正在中止线程"异常
  • .Net Framework4.0 ashx页面报错:检测到有潜在危险的Request.Form值

最新评论

  • 谢谢了。第一次遇到,以前怎么不会出现这种情况呢,奇
  • 第一种方法解决问题。在开始菜单里重置为默认的推荐浏
  • 使用百度分享按钮动态分享的时候永远默认分享最后一条
  • 使用百度分享按钮动态分享的时候永远默认分享最后一条
  • 非常感谢

友情链接

  • Wil的博客
  • Passingwind的博客
  • 坤哥网
  • .NET开发者社区

知识共享许可协议 CC BY-SA 4.0本站作品采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。
闽ICP备15003702号