Назад | Перейти на главную страницу

Удаление 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 я отключил анонимную проверку подлинности для auth / windows / winauth.aspx, который находится в указанном выше пути расположения. У меня настроена трассировка неудачных запросов для отслеживания различных кодов состояния HTTP, включая 302.

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

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

Кому-нибудь удавалось удалить модули таким образом?