asp.net – requestValidationMode 4.5 vs 2.0

requestValidationMode =“4.5”和requestValidationMode =“2.0”有区别吗?我有一个.net 4.5应用程序,有一个我不想验证的控件,用户可以在其中输入html标签
<asp:TextBox ID="txtTitle" runat="server" ValidateRequestMode="disabled" />

在我的web.config我有

<compilation debug="true" strict="false" explicit="true" targetFramework="4.5">...</compilation> 
<httpRuntime targetFramework="4.5" requestValidationMode="2.0"  />

最初我已经提出requestValidationMode =“4.5”但是没有工作,我仍然会收到有关标签错误 – “从客户端检测到潜在的危险Request.Form值…”,一旦提交表单.但是,如果我将它设置为requestValidationMode =“2.0”,它可以使用该命令来打印PageLoad并对该字段进行编码.

解决方法

是的,两者之间有区别.任何指定为4.0或以上的requestValidationMode将使用4.0的方式,并且任何requestValidationMode指定为4.0将使用2.0的方式.以下是对这两个的描述:

http://msdn.microsoft.com/en-us/library/system.web.configuration.httpruntimesection.requestvalidationmode.aspx

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

2.0.请求验证仅对页面启用,而不是针对所有HTTP请求.此外,配置文件中的页面元素(如果有的话)的请求验证设置或单个页面中的@ Page指令的请求验证设置用于确定哪些页面请求进行验证.

注意:还有其他解决方案,因为您使用的是asp.net 4.5,您可能希望查看它在每个控件级别进行验证,这样可以将requestValidationMode属性保留在web.config中,并将其改为4.5对需要的控件.
http://msdn.microsoft.com/en-us/library/system.web.ui.control.validaterequestmode.aspx

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....