gpt4 book ai didi

c# - 如何在不将 RequestValidationMode 设置为 2.0 的情况下禁用请求验证?

转载 作者:可可西里 更新时间:2023-11-01 07:42:52 26 4
gpt4 key购买 nike

我们刚刚升级到 ASP.NET 4.0,发现 requestValidation 不再有效。 MSDN 文档建议我们需要设置 requestValidationMode在 web.config 到 2.0 中:

  • 4.0 (the default). The HttpRequest object internally sets a flag that indicates that request validation should be triggered whenever any HTTP request data is accessed. This guarantees that the request validation is triggered before data such as cookies and URLs are accessed during the request. The request validation settings of the pages element (if any) in the configuration file or of the @ Page directive in an individual page are ignored.
  • 2.0. Request validation is enabled only for pages, not for all HTTP requests. In addition, the request validation settings of the pages element (if any) in the configuration file or of the @ Page directive in an individual page are used to determine which page requests to validate.

这对我们有用,但我有点困惑。看来我们正在将其置于遗留/兼容模式中。当然应该有 4.0 行为,但仍然可以选择在页面上关闭它?

最佳答案

我找到了一种无需将整个站点的 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>

希望它能像帮助我一样帮助你!

关于c# - 如何在不将 RequestValidationMode 设置为 2.0 的情况下禁用请求验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7740944/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com