如何请求验证的HttpHandlers的被禁用?(How can Request Validatio

2019-07-03 17:17发布

是否有可能禁用请求验证的HttpHandlers的?

一点背景 - 我有使用一个HttpHandler接收来自WorldPay的支付响应ASP.NET Web应用程序。 IIS日志表明该处理器正在从WorldPay的正确调用,但处理程序中的代码不会被调用。

如果我创建一个物理ASPX页面,并设置ValidateRequest =在头假的 ,并把相同的代码在Page_Load方法中,代码被称为没有任何问题。

这解决了这个问题,但我更愿意坚持使用一个HttpHandler这个,因为它是更适合这种类型的功能,而不是一个空的ASPX页面,虽然这是依赖于能够禁用请求验证。

Web应用程序使用ASP.NET 2.0和服务器是IIS6。

Answer 1:

在IIS6,你可以简单地添加validate="false"在web.config中注册。

<add path="handler.axd" type="Foo.Bar.MyHandler" verb="*" validate="false" />

如果任何人都可以阐明如何在IIS7的集成模式下做到这一点一些轻,这将是非常有帮助了。



Answer 2:

这是很容易的。 更改以下片段相匹配的处理程序路径,并添加你的web.config:

<configuration>
  ....
  <location path="YOUR HANDLER PATH" allowOverride="true">
    <system.web>
      <httpRuntime requestValidationMode="2.0" />
      <pages validateRequest="false" />
    </system.web>
  </location>
</configuration>


Answer 3:

对于IIS7我们一直在添加/修改web.config中的下列关键

看到http://www.asp.net/learn/whitepapers/aspnet4/breaking-changes#0.1__Toc256770147



文章来源: How can Request Validation be disabled for HttpHandlers?