133 із 153 людей знайшли це корисним Коли створюється ідентичність, вона може належати одній або кільком ролям, наприклад, Трейсі може належати до ролей Адміністратора та Користувача, а Скотт — лише до ролі користувача. Те, як ці ролі створюються та керуються, залежить від бек-сховища процесу авторизації. Ролі відкриваються забудовнику через власність IsInRole у класі ClaimsPrincipal.
Нова ідентичність може належати одній або кільком ролям, наприклад, Трейсі може належати ролям Адміністратора та Користувача, а Тоді як Скотт може належати лише ролі Користувача. Як ці ролі створюються та управляються, залежить від того, як зберігається процес авторизації. Метод IsInRole класу ClaimsPrincipal дає розробникам інформацію, як використовувати цю роль.
Додавання перевірок ролей Додавання валідації ролі
Перевірки авторизації на основі ролі є декларативними — розробник вбудовує їх у свій код, проти контролера або дії всередині контролера, вказуючи ролі, які поточний користувач повинен Будьте членом для доступу до запитуваного ресурсу.
Автентифікація на основі ролей базується на вимогах, яку розробники вбудовують у свій код, призначаючи ролі контролеру або методи всередині нього, вказуючи, що користувачі у запиті повинні відповідати вимогам членства.
Наприклад, наступний код обмежить доступ до будь-яких дій на Адміністративному контролері лише користувачами, які є членами групи адміністраторів.
Наприклад, наступний код обмежує будь-який метод у Адміністративному контролері для використання лише членом групи адміністраторів.
Ви можете вказати кілька ролей у вигляді списку, розділеного комою;
Ви можете додати кілька призначених ролей до списку з комами:
Цей контролер буде доступний лише користувачам, які є членами ролі HRManager або Фінансового відділу.
Контролер буде доступний лише для членів ролі HRManager або Фінансового відділу.
Якщо ви застосовуєте кілька атрибутів, то користувач, що отримує доступ, повинен бути учасником усіх зазначених ролей; наступний приклад вимагає, щоб користувач був членом як ролі PowerUser, так і ControlPanelUser.
Якщо ви використовуєте кілька атрибутів, користувач доступу повинен бути членом усіх ролей; Наступний приклад вимагає, щоб користувач був членом обох ролей PowerUser і ControlPanelUser.
Ви можете додатково обмежити доступ, застосувавши додаткові атрибути авторизації ролі на рівні дій;
Ви можете використовувати додаткові атрибути авторизації ролі на рівні методу для застосування додаткових обмежень використання;
У попередньому коді члени ролі Адміністратора або PowerUser можуть отримати доступ до контролера та дії SetTime, але лише члени ролі Адміністратора можуть отримати доступ до Дія ShutDown.
У попередньому фрагменті коду члени ролей Адміністратора або PowerUser можуть використовувати методи контролера та SetTime, але лише члени ролі адміністратора можуть застосовувати метод ShutDown.
Ви також можете заблокувати контролер, але дозволити анонімний, неавтентифікований доступ до окремих дій.
Ви також можете заблокувати контролер, але дозволити анонімним користувачам використовувати окремі методи без дозволу.
Перевірки ролей на основі політики Перевірки ролей на основі політики
Вимоги до ролі також можна виразити за допомогою нового синтаксису політики, де розробник реєструє політику при запуску як частину конфігурації сервісу авторизації. Зазвичай це відбувається у ConfigureServices() у вашому Startup.cs файлі.
Ролі також можна реалізувати, використовуючи новий синтаксис політики, де розробники реєструють політику як частину конфігурації сервісу авторизації при запуску. Зазвичай це додається до ConfigureServices() файлу Sartup.cs.
Політики застосовуються за допомогою властивості Policy на атрибуті AuthorizeAttribute;
Реалізуйте політику, використовуючи властивість Policy поверх властивості AuthorizeAttribute.
Якщо ви хочете вказати кілька дозволених ролей у вимозі, то можете вказати їх як параметри методу RequireRole;
Якщо ви хочете вказати кілька ролей у запиті, ви можете вказати їх як кілька параметрів методу RequireRole:
його приклад дозволяє користувачам, які належать до ролей Адміністратора, PowerUser або BackupAdmin.
Авторизований користувач у цьому прикладі належить до ролі Адміністратора, ПаверКористувача або Резервного адміністратора.
Переведено з:Вхід за гіперпосиланням видно. |