2013-09-27 3 views
3

Я совершенно новый с этой структурой, и я все еще изучаю ее основы и C#. Между тем, я столкнулся с атрибутами Авторизовать и AllowAnonymous при чтении книги, и я не могу понять, как контроллер «знает», если пользователь пытается получить доступ к этим методам/действиям, аутентифицирован или нет. Где хранится эта информация? Нужно ли иметь специальное лечение при выполнении метода входа?ASP .Net MVC 4 Authorize and AllowAnonymous

Спасибо за любую помощь.

ответ

14

Предполагая, что у вас есть какая-то настройка аутентификации в вашем приложении (проверка подлинности, проверка подлинности Windows или OAuth), у зарегистрированного пользователя есть токен, хранящийся в браузере в виде файла cookie. Когда пользователь перемещает ваше приложение, их токен передается вместе с ним. Когда атрибут Authorize применяется к одному из ваших методов контроллера, ваше приложение проверяет их токен и, если оно является аутентифицированным пользователем с правильными разрешениями, оно разрешает их, если оно не перенаправляет их на указанное вами действие. Переадресация по умолчанию - это страница регистрации/входа. AllowAnonymous позволяет пользователям, не прошедшим проверку подлинности, получить доступ к действию или контроллеру.

Короче говоря, он знает, основываясь на токене, который он получает от клиента.

Что касается второго вопроса, если вы выбрали «интернет-приложение», когда вы создали свой проект MVC 4, для вас встроена аутентификация форм, и вам не нужно ничего делать, кроме использования сгенерированного действия для входа. Если вы хотите использовать базу данных, отличную от той, которую создал сгенерированный код, вам необходимо реализовать MembershipProvider и MembershipUser.

Смежные вопросы