Я изучал Asp.Net Identity в последние несколько дней, я знаком с авторизацией контроллера с [Authorize(Roles = "Admin")]
или [Authorize(Policy = "OnlyAdminAndModerators")]
, например.
Я использую токен JWT, когда авторизируюсь через "[Authorize (Roles =" Admin ")]", все, что мне нужно сделать, это установить тип роли на моем токене, например:
{
"nameid": "a173e923-1808-4d7d-2b64-08d684882677",
"unique_name": "yuri",
"role": [
"Admin",
"Moderator"
],
"nbf": 1549522727,
"exp": 1549609127,
"iat": 1549522727
}
Таким образом, мой контроллер может проходить аутентификацию через имя «роли» на json
и значение « Admin ».
Что я слышал, так это то, что в таблице Identity AspNetRole можно создать роль, связать заявку с ролью через таблицу AspNetRoleClaims, поэтому, например, у администратора будет утверждение «CanAdd», а затем -Класс запуска, я мог бы создать Политику, говорящую что-то вроде options.AddPolicy("Add Role", policy => policy.RequireClaim("CanAdd", "AddClaim"));
И, наконец, я мог бы перейти на свой контроллер, установить метод с [Authorize(Policy = "Add Role")]
, и контроллер авторизовал бы любого пользователя с ролью администратора, потому чтоу него будет требование CanAdd.
Извините, я знаю, что это большой вопрос, но я действительно хочу сделать эту работу.
Заранее спасибо.