Отключите аутентификацию в MVC с помощью web.конфиг

У меня есть сайт MVC, защищенный с помощью атрибутов [Authorize], но есть проблема на производственном веб-сайте, который использует единый вход через пару или сайты на разных серверах. Я хочу исключить аутентификацию в качестве причины; есть ли способ временно отключить аутентификацию через интернет.настройте так, чтобы все или некоторые действия контроллера, имеющие атрибут Authorize, могли быть доступны без входа в систему?

изменить:

Я попытался добавить следующее сеть.config:

<authentication mode="None" />

но это приводит к тому, что все действия, украшенные атрибутом Authorize, отображают пустые страницы. Действия без авторизации продолжают работать, хотя

4 ответов


есть ли способ временно отключить аутентификацию через сеть.настройте так, чтобы все или некоторые действия контроллера, которые имеют Authorize атрибут может быть доступен без входа в систему?

нет, это невозможно с платформой по умолчанию. Я почти уверен, что AuthorizeAttribute в исходном коде MVC попытается проверить и посмотреть, вошел ли пользователь в систему. Без аутентифицированного пользователя доступ будет запрещен.


используйте [AllowAnonymous], чтобы разрешить использование определенных действий в контроллере неавторизованными пользователями.


в Интернете.config прокомментируйте ребенка:

<authentication mode="Windows" />
<authorization>
  <!--<deny users="?" />-->
</authorization>

вы можете разрешить всем пользователям доступ к системе, добавив следующее в интернете.конфиг. Когда контроллер проверяет авторизацию, пользователь будет проверен, так как вы позволяете всем пользователям с любой аутентификацией windows получить доступ к системе.

<authentication mode="Windows" />
    <authorization>
      <allow users="*"/>
  <!--<deny users="?" />-->
    </authorization>