【问题标题】:Validation exception even with ValidateRequest="false"验证异常,即使 ValidateRequest="false"
【发布时间】:2011-11-08 15:09:47
【问题描述】:

我在 Web 表单中有一个文本框,管理员用户可以在其中添加要提交的 HTML 以进入数据库。

过去,我在提交 HTML 数据时总是将ValidateRequest="false" 添加到Page 以避免验证错误。但是,在这个网站上,即使 ValidateRequest 设置为 false,我也会收到以下错误:

从 客户

我听说这与 .NET 4 安全性有关,但这是一个 ASP.NET 3.5 应用程序。

为什么我仍然收到此错误?

【问题讨论】:

  • 你实际发布了什么?
  • 为什么不编码呢?
  • 这是正确的网络表单,而不是 MVC?
  • @JamesJohnson 确实如此。重新标记。
  • @RoyiNamir - 啊,没想到!我会试一试。

标签: asp.net security asp.net-3.5 webforms validate-request


【解决方案1】:

RequestValidation 在 .Net 4.0 中发生了重大变化。

多多关注:http://msdn.microsoft.com/en-us/library/system.web.configuration.httpruntimesection.requestvalidationmode(VS.100).aspx

要解决您的问题,您必须在 weh.config 中的 httpRuntime 中将 requestValidationMode 设置为小于 4.0 的值,如下所示:

<httpRuntime requestValidationMode="2.0" />

【讨论】:

    【解决方案2】:

    如果您对将请求验证设置回 .net 2 感到不安 - 只需在 Web 配置中添加一个位置标志(以及在您希望允许特殊字符进入的文本框中设置 ValidateRequestMode="Disabled")。 web.config中的位置设置是这样的:

      <location path="login.aspx">
        <system.web>
          <httpRuntime requestValidationMode="2.0" />
        </system.web>
      </location>
    

    在此查看优秀文章和 cmets:https://weblog.west-wind.com/posts/2010/Aug/19/RequestValidation-Changes-in-ASPNET-40

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-08
      • 2011-03-28
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多