.net 4.0 ValidateRequest=false 无效解决方法
安装了VisualStudio 2010 Ultimate,最近的一个项目升级到了4.0下,结果跑了一下,发现关于页面启用 ValidateRequest="false" 的部份失效。于是把web站点的版本及项目版本都降回原来的版本后,错误就消失了,于是搜索了一下,找到如下资料:
A potentially dangerous Request.Form value was detected from the client (ctl00$MainContent$txtCode="<code></code>").
Exception Details: System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (ctl00$MainContent$txtCode="<code></code>").
Version Information: Microsoft .NET Framework Version:4.0.21006; ASP.NET Version:4.0.21006.1
在安装了Visual Studio 2010 Beta2之后,当页面输入框默认情况下输入“<”或者“>”的时候。按照访问策略,这将导致一些安全问题,诸如:跨站脚本攻击(cross-site scripting attack)。而这个问题的更准确描述则是,当你在安装了.NET Framework 4.0以上版本后,当你的应用程序以.NET Framework 4.0为框架版本,你的任意服务器请求,都将被进行服务器请求验证(ValidationRequest),这不仅包括ASP.NET,同时也包括Web Services等各种HTTP请求,不仅仅针对aspx页面,也针对HTTP Handler,HTTP Module等,因为这个验证(Valify)的过程,将会发生在BeginRequest事件之前。
基于以上原理,在ASP.NET之前的版本中,请求验证也是默认开通的,但是发生在页面级(aspx)的,并且只在请求执行的时候生效,因此,在旧的版本中,我们只需要按以下方式配置即可:
在页面级别(aspx中)设置
ValidateRequest="false"
或者
在全局级别(Web.config中)设置
<configuration>
<system.web>
<pages validateRequest="false">
但是,以上设置仅对ASP.NET4.0以上有效。在ASP.NET4.0版本上,我们需要更多一行的配置:
在全局级别(Web.config中)设置
<configuration>
<system.web>
<httpRuntime requestValidationMode="2.0">
这一点其实在发生错误的页面中已经有说明了。在实际使用过程中,不仅如此,而且我发现requestValidationMode只要设置成小于4.0就可以,比如:1.0,2.0,3.0,3.9都是可以的,错误提示中指明用2.0,目的只是说明用ASP.NET 2.0的默认方式进行工作。
.net 4.0 ValidateRequest=false 无效解决方法相关推荐
- .net 4.0 ValidateRequest=false 无效
.net 4.0 ValidateRequest="false" 无效 昨天安装了VisualStudio 2010 Ultimate,今天把最近的一个项目升级到了4.0下,结果跑 ...
- onsubmit校验表单时利用ajax的return false无效解决方法
代码: function checkNewEmail(){var re_email=new RegExp("\\w+@\\w+\\.\\w+\\.?\\w*");var newEm ...
- ValidateInput(false)与this.ValidateRequest = false无效的解决方案
ValidateInput(false)与this.ValidateRequest = false无效的解决方案 鼓捣了半天 终于解决了这个问题 写出来 叫后人少费点劲 在最外层的web.config ...
- 安卓 android:windowsoftinputmode,Android:windowSoftInputMode="adjustResize"无效解决方法
Android:windowSoftInputMode="adjustResize"无效解决方法 时间:2018-08-16 来源:未知 Android开发中用到软键盘时会出现设置Activi ...
- php unserialize 返回false的解决方法
php unserialize 返回false的解决方法 php 提供serialize(序列化) 与unserialize(反序列化)方法. 使用serialize序列化后.再使用unseriali ...
- Better Scroll+Vue、div的@click无效解决方法
better-scroll+Vue.div的@click无效解决方法 正常情况,div可以直接点击 <template><div><div @click="di ...
- ubuntu (20.04 LTS) 屏幕亮度调节无效解决方法
ubuntu屏幕亮度调节无效解决方法 问题描述 尝试过的解决方法 解决方法发现历程 解决方法 总结 问题描述 因为学习需要,在Win10系统的基础上安装了Ubuntu20.04 LTS 双系统,但 ...
- chrome浏览器模拟手机端:jquery click()点击无效解决方法
chrome浏览器模拟手机端:jquery click()点击无效解决方法 参考文章: (1)chrome浏览器模拟手机端:jquery click()点击无效解决方法 (2)https://www. ...
- 出现should be mapped with insert=“false“ update=“false“的解决方法
出现should be mapped with insert="false" update="false"的解决方法 参考文章: (1)出现should be ...
最新文章
- 独家 | 一文盘点AutoML 库(附PPT等链接)
- matlab基础(0)
- 线性变化和非线性变化
- Android入门(二) | 项目目录及主要文件作用分析
- #华为云·寻找黑马程序员#【代码重构之路】如何“消除”if/else
- 前端怎么自我介绍_未雨绸缪,小米前端实习面经
- Python基础函数学习笔记(三)
- iPhone清理喇叭灰尘_厉害了!原来可以这样一键清理 iPhone 喇叭灰尘!
- Topaz DeNoise AI 2.3.6汉化版|AI智能降噪插件Topaz DeNoise AI 2.3.6中文版
- Spring Validation 验证框架全面总结
- 英语口语收集(二十六)
- 计算机术语root,root是什么意思
- 【工业革命】第四次工业革命:自主经济的崛起
- 网格布局(固定单元格间隔,单元格、容器大小不定)布局使用
- 带上萌宠去上班 | IT办公室宠物报告
- 甘特图——项目管理的理想控制工具
- vue中使用google地图(自定义label、信息窗口)
- c语言diy杀毒程序源代码,c - 源码下载|其它|杀毒|源代码 - 源码中国
- 学习OpenCV:hu矩
- 当年轻人开始拼命戒抖音
热门文章
- 关于bitset中的 to_ulong()的解答
- 初次安装mysql 如何启动_CentOS第一次安装MySQL的完整步骤
- NGNIX在CENTEROS 下部署
- 打开viewer.jnlp文件
- 详解HTTPS通信流程,使用JDK,openssl,XCA进行证书认证详细操作,Spring Boot配置SSL证书实操
- mojave时间机器文件服务器,在 Mac 上可以与时间机器配合使用的磁盘类型
- 与Anthony Baldino一起塑造声音
- 华为AC忘记console密码
- 差分放大电路在信号传输的作用及设计原理
- 码元速率的盲估计-包络谱法