Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 27998|Ответ: 3

[Источник] Asp.Net аутентификации и авторизации в MVC

[Скопировать ссылку]
Опубликовано 16.03.2017 13:47:34 | | |

MVC поставляется с фильтром ActionFilter
Для достижения аутентификации личности Asp.NET WebForm Microsoft предлагает нам три способа, наиболее распространённый из которых — аутентификация формы, которую необходимо настроить с соответствующей информацией. Например, следующая информация о конфигурации:


Это значит, что наша страница входа — Login.aspx, страница по умолчанию после успешного входа — Default.aspx, а информация о пользователях использует два метода: верификацию и шифрование. И самое главное — нам нужно написать метод авторизации (авторизация ниже должна быть написана, иначе бесполезно использовать только аутентификация Forms и затем устанавливать соответствующие атрибуты), запрещать всем анонимным пользователям, и только авторизованные пользователи имеют доступ в обычный режим. После этого мы устанавливаем кнопку входа так, чтобы имя пользователя вписывалось в куки (то есть выполняет FormsAuthentication.SetAuthCookie(name, false); Ну вот.
0 В Asp.Net MVC мы также можем использовать аутентификацию форм, но если делать это в WebForm, это не сработает. Например, вы настраиваете информацию следующим образом:


Вы настроили логин в Login.aspx, чтобы запустить вход в AccountController для входа, где код входа:

После этого вы обнаружите, что ваш Logon не будет выполнен. В чём причина? Почему такая же настройка не работает в MVC? Причина в том, что механизм отличается, потому что вы настроили метод авторизации, который делает Logon недоступным. Так как же это сделать?
На самом деле, в Asp.Net MVC у нас есть лучший способ сделать всё это, нам не нужен метод авторизации, поэтому наша конфигурационная информация выглядит так:




Нет необходимости указывать, что анонимные пользователи не могут войти в систему и так далее. Конечно, вы обнаружите, что этого недостаточно, но нам нужно сообщать системе, какие из них нужно войти для доступа. Возможно, вы думаете: o()〈))o О, это слишком хлопотно. Это не так, всё очень просто, нам просто нужно отметить [Authorize] на действии, которое нужно аутентифицировать. Например, у меня есть две страницы в папке Home — Index и Home, и я хочу, чтобы Index был аутентифицирован для доступа, но Home этого не делает, поэтому мне нужно только указать Index тег Действия [Authorize], то есть:



Это позволяет получить доступ к Index после входа, в то время как Home не требует входа. Если вам нужно авторизировать роли, вы можете указать роль при маркировке Authorize (например, [Authorize(Role=Administrators)]), но вам нужно использовать механизм членства, предоставленный Microsoft, потому что ваша роль не может существовать просто так, а существует в соответствующей базе данных, о которой я упоминал в другом блоге.
Настройте ActionFilter
Иногда вы не можете пройти такую аутентификацию, или если чувствуете, что недостаточно гибки, то это не важно, Asp.Net MVC позволяет настраивать ActionFilter. Например, теперь я настраиваю аутентификацию:


Если требуется управление пользователями, я определю фильтры, связанные с ролями:

На самом деле, вы обнаружите, что вышеуказанные два атрибута были решены встроенным авторизованным элементом MVC, и здесь мы в основном говорим, что при необходимости вы можете его расширить.
Ну вот, на сегодня всё! Загрузка исходного кода: FormFormsAuthenticationMvc





Предыдущий:После обновления VPS процесс составляет около 45, а процессор — до 100,
Следующий:Предупреждение: «Обнаружены неразрешённые конфликты между разными версиями одного и того же зависимого сборки»
 Хозяин| Опубликовано 30.03.2017 9:40:22 |
Опубликовано 28.12.2017 14:58:56 |
Было бы лучше, если бы были рендеры
Опубликовано 07.02.2023 15:44:56 |

Было бы лучше, если бы были рендеры
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com