Наиболее кратко мой вопрос состоит в том, должен ли ASP.NET, 4,0 приложения, работающие под IIS 7, интегрировали режим, смочь соблюдать эту часть моего файла Web.config:
<location path="auth/windows">
<system.webServer>
<modules>
<remove name="FormsAuthentication"/>
</modules>
</system.webServer>
</location>
Я экспериментирую со смешанной аутентификацией режима (Windows и Формы - я знаю, что существуют другие вопросы на S.O. о теме). Используя менеджера по IIS, я отключил Анонимную аутентификацию к auth/windows/winauth.aspx, который является в пути местоположения выше. Я Привел к сбою Трассировку Запроса, настроенную для трассировки различных кодов состояния HTTP, включая 302 с.
Когда я запрашиваю winauth.aspx страницу, 302 кода состояния HTTP возвращаются. Если я смотрю на трассировку запроса, я вижу, что (несанкционированные) 401 были первоначально сгенерированы AnonymousAuthenticationModule. Однако FormsAuthenticationModule преобразовывает это в 302, которое является тем, что видит браузер. Таким образом, кажется, как будто моя попытка удалить тот модуль из конвейера для страниц в том пути не работает. Но я не вижу жалоб нигде (средство просмотра события, желтые страницы смерти, и т.д.), который указал бы, что это - недопустимая конфигурация. Я хочу эти 401, возвращенные к браузеру, который, по-видимому, будет включать соответствующий WWW - Аутентифицируют заголовок.
Несколько других точек: a) я действительно имею <authentication mode="Forms">
в моем Web.config, и именно это 302 перенаправления к; b) я получил "название" модуля, который я пытаюсь удалить из inetserv\config\applicationHost.config файла; c) у меня есть этот элемент в моем файле Web.config: <modules runAllManagedModulesForAllRequests="false">
.
У кого-либо была удача при удалении модулей этим способом?
Вместо удаления модуля, как насчет удаления Forms Authentication для этого пути?
<location path="auth/windows">
<system.Web>
<authentication mode="None"/>
</system.Web>
</location>