微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/aspnet/249758.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐