asp.net – requestValidationMode 4.5 vs 2.0

前端之家收集整理的这篇文章主要介绍了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

猜你在找的asp.Net相关文章