Удаление HttpModule для определенного пути в приложении ASP.NET / IIS 7?

Удаление HttpModule для определенного пути в приложении ASP.NET / IIS 7?

Если говорить кратко, мой вопрос заключается в том, должно ли приложение ASP.NET 4.0, работающее в интегрированном режиме IIS 7, иметь возможность учитывать эту часть моего файла Web.config:

  <location path="auth/windows">
    <system.webServer>
      <modules>
        <remove name="FormsAuthentication"/>
      </modules>
    </system.webServer>
  </location>

Я экспериментирую со смешанным режимом аутентификации (Windows и Forms). Используя IIS Manager, я отключил анонимную аутентификацию для auth/windows/winauth.aspx, который находится в указанном выше пути расположения. Я настроил трассировку неудачных запросов для отслеживания различных кодов состояния HTTP, включая 302.

Когда я запрашиваю страницу winauth.aspx, возвращается код статуса HTTP 302. Если я посмотрю на трассировку запроса, то увижу, что 401 (неавторизованный) был изначально сгенерирован AnonymousAuthenticationModule. Однако FormsAuthenticationModule преобразует его в 302, который видит браузер. Так что, похоже, моя попытка удалить этот модуль из конвейера для страниц по этому пути не работает. Но я не вижу никаких жалоб нигде (в средстве просмотра событий, в справочнике «Желтые страницы смерти» и т. д.), которые бы указывали на недопустимую конфигурацию. Я хочу, чтобы браузеру возвращался код 401, который, предположительно, будет включать соответствующий заголовок WWW-Authenticate.

Еще несколько моментов: а) у меня в Web.config есть <authentication mode="Forms">, и именно туда перенаправляет 302; б) я получил «имя» модуля, который пытаюсь удалить, из файла inetserv\config\applicationHost.config; в) у меня в файле Web.config есть этот элемент: <modules runAllManagedModulesForAllRequests="false">; г) я попробовал <location>элемент для пути, в котором я установил режим аутентификации на «None», но это дало желтую страницу исключения, что свойство не может быть установлено ниже уровня приложения.

Удалось ли кому-нибудь удалить модули таким способом?

Связанный контент