2014-02-08 2 views
37

Хорошо, так что это неважно, но это подтачивает меня, и я не могу его отпустить.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 используют атрибут name «FormsAuthentication». и так, что здесь происходит? Мне кажется, что модуль не будет удален, так как атрибут name не совпадает. Я бы просто подумал, что это опечатка, но после поиска в Интернете все, кажется, используют «FormsAuthenticationModule» в приложении web.config. Было ли это недавнее изменение в новой версии asp.net/iis или я что-то упустил?

ответ

25

Вы правы - это опечатка в шаблоне.

+0

Они зафиксировали его :) –

5

Основной побочный эффект этого «опечатка» он оставит FormsAuthentication на причинение loginpath из Owin игнорироваться и вызовы с проверкой подлинности страниц будет /login.aspx

+1

Это не обеспечивает ответ на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. –

+0

Говоря о опечатках ... Я думаю, что u означало «страницы, не прошедшие проверку подлинности» ;-) –