Пользовательская аутентификация asp.net MVC - PullRequest
2 голосов
/ 29 октября 2009

В какой момент я должен проверять наличие cookie в моем приложении mvc? В основном, что я хочу сделать для каждого запроса, это проверить, есть ли cookie, и если да, показать их имя где-нибудь на экране, если нет, и страница требует, чтобы пользователь вошел в систему, перенаправьте их на страницу входа.

Я не хочу использовать FormsAuthentication, поскольку хочу создать и использовать свой собственный объект IPrinciple. Я просто не уверен, следует ли мне устанавливать их в базовом классе контроллера или создавать собственный атрибут Authorize и выполнять проверки в там.

Мои первоначальные мысли заключаются в том, что я должен делать это в базовом классе контроллера, поскольку это похоже на базовую страницу в веб-формах, где я переопределяю oninit.

1 Ответ

3 голосов
/ 29 октября 2009

Не пытайтесь выполнить аутентификацию в базовом классе контроллера. В ситуации, когда результат действия кэшируется, ваше действие не будет выполняться вообще, и ни один контроллер никогда не будет создан. Следовательно, аутентификация, выполняемая внутри контроллера, нарушена по проекту .

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

Короче говоря, используя этот метод:

  • Имеет правильный уровень модульности
  • Работает с кешированием
  • Работает как с обычным ASP.NET, так и с MVC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...