Dan*_*eny 15 .net c# asp.net request-validation requestvalidationmode
我们刚刚升级到ASP.NET 4.0,发现requestValidation不再有效.MSDN文档建议我们需要将web.config中的requestValidationMode设置为2.0:
- 4.0(默认值).HttpRequest对象在内部设置一个标志,指示每当访问任何HTTP请求数据时都应触发请求验证.这保证了在请求期间访问诸如cookie和URL之类的数据之前触发请求验证.将忽略配置文件中的pages元素(如果有)或单个页面中的@ Page指令的请求验证设置.
- 2.0.仅对页面启用请求验证,而不是对所有HTTP请求启用.此外,配置文件中的pages元素(如果有)或单个页面中的@ Page指令的请求验证设置用于确定要验证的页面请求.
这对我们有用,但我有点困惑.似乎我们将其置于传统/兼容模式.当然应该可以有4.0行为,但仍然可以选择在页面上关闭它?
小智 26
我找到了一种方法来实现这一点,而无需将RequestValidationMode更改为2.0到整个站点:
您可以为要禁用请求验证的页面创建子目录,并将新的web.config添加到此目录,并将RequestValidationMode设置为2.0,这样只有此目录才能在2.0模式下工作,而不会影响所有其他请求在4.0模式下工作.
我想你可以在主web.config中添加一个位置部分,只指定一个页面,但我还没有测试过.像这样的东西:
<location path="Admin/Translation.aspx">
<system.web>
<httpRuntime requestValidationMode="2.0"/>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
希望它可以帮助你帮助我!
Raj*_*noy -6
您可以ValidateRequest在页面指令中设置为 false:
<%@ Page ValidateRequest="false" %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21903 次 |
| 最近记录: |