Второй уровень аутентификации в приложении ASP.NET MVC2 - PullRequest
3 голосов
/ 27 августа 2010

У нас есть приложение ASP.NET, которое частично в MVC (остальная часть - устаревшая CMS на основе веб-форм). Приложение аутентифицируется с помощью проверки подлинности с помощью форм, хотя любой пользователь, который обращается к нему с определенного набора IP-адресов, автоматически назначается «специальному» пользователю.

В настоящее время у нас есть дочернее приложение, которое в идеале мы хотели бы добавить в (родительское) приложение MVC в качестве области. Это приложение использует проверку подлинности Windows в качестве второго уровня проверки подлинности. Есть ли простой способ сохранить второй уровень аутентификации (возможно, с помощью второго атрибута авторизации)? Это имеет в виду, что пользователи могут войти в это приложение как внутри, так и за пределами набора IP-адресов, используемых для аутентификации пользователя по специальным формам, что исключает прямую аутентификацию форм. Мы также не обязательно привязаны к аутентификации Windows для этого второго уровня, если это облегчает решение.

1 Ответ

2 голосов
/ 14 сентября 2010

Мне еще предстоит попробовать это полностью, но из того, что я видел и испытывал до сих пор, мое решение моей собственной проблемы заключается в следующем:

  1. Используйте проверку подлинности с помощью форм для защищенной области вместо проверки подлинности Windows.
  2. Создать роль для определенных пользователей, которым разрешен доступ к этой области, и распределить ее соответствующим образом.
  3. Создание нового пользовательского атрибута авторизации, отправка неаутентифицированных пользователей на страницу входа. В этом случае мне нужно сделать это, так как приложение определяет страницу входа в систему для проверки IP (вместо правильной страницы входа), поэтому использование обычного атрибута авторизации может вызвать бесконечный цикл запроса. Процесс аналогичен описанному решению здесь , за исключением того, что я использую простой RedirectResult вместо RedirectToRouteResult, поскольку страница входа по-прежнему в WebForms вместо MVC.
  4. (Необязательно), поскольку я использую области MVC, я даже могу создать базовый контроллер с настраиваемым атрибутом авторизации и извлечь из него все остальные контроллеры . Это избавляет меня от префиксов каждого метода в каждом контроллере (и, без сомнения, мешает мне забыть сделать это где-нибудь!).

Я все еще открыт для других решений!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...