Как сделать редактируемые роли в ASP.NET Core? - PullRequest
0 голосов
/ 05 июля 2018

Я хочу сделать авторизацию на основе ролей с использованием ASP.NET Core, но роли должны быть редактируемыми. Моя идея состоит в том, чтобы сделать такие роли:

  • имя
  • canEdit
  • CanDelete
  • и т.д.

И пользователю будет назначена роль.

Роли по умолчанию не вариант, потому что мне нужно редактировать эти роли. Я думаю о странном использовании Policies или написании собственной авторизации.

[Authorize(Roles = "Administrator")] // Not editable

Я должен сказать, что я не использую Identity и для аутентификации у меня есть JWT.


...
[Authorize(Policy = "CanEdit")]
SomeEditMethod()
...

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();

    services.AddAuthorization(options =>
    {
        options.AddPolicy("CanEdit", policy => policy.RequirePrivilege("CanEdit"));
    });
}

Мне может быть трудно сделать RequirePrivilege. Как вы думаете, ребята разработчики? Есть идеи?

1 Ответ

0 голосов
/ 10 июля 2018

Хорошо, так что ...

Я сделал это, сохранив это в JWT, а затем добавив политики, подобные этой.

  ...
  services.AddAuthorization(options => {
     options.AddPolicy("CanEditUnit", policy => policy.RequireClaim("CanEditUnit", "True"));
  });
  ...

И их используя атрибут Authorize. Например:

[Authorize(Policy = "CanEditUnit")

Спасибо всем за помощь! Особенно @ Briefkasten.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...