Как можно отключить проверку запросов для HttpHandlers? - PullRequest
13 голосов
/ 26 августа 2009

Можно ли отключить проверку запросов для HttpHandlers?

Немного предыстории - у меня есть веб-приложение ASP.NET, использующее HttpHandler для получения ответа на платеж от WorldPay. Журналы IIS показывают, что обработчик вызывается правильно из WorldPay, но код внутри обработчика никогда не вызывается.

Если я создаю физическую страницу ASPX и задаю ValidateRequest = false в заголовке и помещаю тот же код в метод Page_Load, код вызывается без проблем.

Это решает проблему, хотя я бы предпочел использовать для этого HttpHandler, так как он лучше подходит для этого типа функциональности, чем для пустой страницы ASPX, хотя это зависит от возможности отключить проверку запросов. .

Веб-приложение использует ASP.NET 2.0, а сервер - IIS6.

Ответы [ 3 ]

6 голосов
/ 11 мая 2015

это довольно просто. Измените следующий фрагмент, чтобы он соответствовал пути обработчика, и добавьте в ваш web.config:

<configuration>
  ....
  <location path="YOUR HANDLER PATH" allowOverride="true">
    <system.web>
      <httpRuntime requestValidationMode="2.0" />
      <pages validateRequest="false" />
    </system.web>
  </location>
</configuration>
2 голосов
/ 27 октября 2010

Для IIS7 мы добавили / изменили следующий ключ в web.config

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

0 голосов
/ 06 мая 2010

На IIS6 вы можете просто добавить validate="false" в регистрацию web.config.

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

Если бы кто-нибудь мог пролить свет на то, как этого добиться в интегрированном режиме IIS7, это было бы чрезвычайно полезно.

...