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

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

2015-01-17 十有三 0 浏览:1万+ .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 会话数据库。

相关文章
  • 只允许一个 <configSections> 元素。它必须是根 <configuration> 元素的第一个子元素- HTTP Error 500.19
  • asp.net动态添加meta标签
  • Visual Studio Community 2013英文版安装中文语言包步骤
  • 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
  • 解决vs2010添加项目后解决方案资源管理器中没有显示解决方案的问题
  • ASP.NET MVC出现XML5632仅允许有一个根元素

文章分类

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

文章标签

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

热门文章

  • IIS8如何安装和使用URL重写工具-URL Rewrite
  • 林蛋大与楚中天,朱肚皮与朱月坡
  • 解决IE11安装升级失败和在安装前需要更新的问题
  • Windows Server 2012无法安装 .NET3.5-安装角色或功能失败,找不到源文件
  • VS重构重命名的快捷键

推荐文章

  • C#中ADO.NET如何传递和设置like查询的参数
  • 如何在ASP.NET的web.config配置文件中添加MIME类型
  • 鲍鱼壳是否可以防蟑螂和蚊虫?
  • 翻译:Changes to the language setting will not take effect until the environment is restarted.
  • 网站用户体验优化之数值显示

友情链接

  • Passingwind的博客
  • 码友网

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