ASP.NET MVC 5 Web.config: "FormsAuthenticationModule" или "FormsAuthentication"
Хорошо, так что это не имеет большого значения, но это беспокоит меня, и я не могу отпустить.
Поэтому я использую MVC 5.1 с.NET 4.5.1 и аутентификацией OWIN. Поэтому, когда вы создаете новый проект MVC 5, в Web.config автоматически добавляется следующее, чтобы избавиться от модуля http проверки подлинности с помощью форм, поскольку он больше не требуется при использовании промежуточного программного обеспечения OWIN:
<system.webServer>
<modules>
<remove name="FormsAuthenticationModule" />
</modules>
</system.webServer>
Теперь, так как мы удаляем модуль, это означает, что он был ранее добавлен, поэтому здесь есть запись, регистрирующая этот http-модуль в C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config
:
<httpModules>
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />
</httpModules>
А вот и запись в C:\Windows\System32\inetsrv\config\applicationHost.config
для IIS 8.5, который говорит моему приложению использовать модуль:
<system.webServer>
<modules>
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />
</modules>
</system.webServer>
То, что автоматически добавляется в мою веб-конфигурацию на уровне приложения, имеет атрибут имени "FormsAuthenticationModule", в то время как записи в двух файлах конфигурации уровня сервера /asp.net используют атрибут имени "FormsAuthentication". и так, что здесь происходит? Мне кажется, что модуль не будет удален, поскольку атрибут name не совпадает. Я бы просто подумал, что это опечатка, но после поиска в Интернете все, кажется, используют "FormsAuthenticationModule" в приложении web.config. Это недавнее изменение в новой версии asp.net / iis или я что-то упустил?
2 ответа
Основным побочным эффектом этой "опечатки" является то, что она оставляет FormsAuthentication, заставляя игнорировать логин-путь owin и обращения к аутентифицированным страницам, идущим в /login.aspx.