Авторизация на основе ролей без входа - PullRequest
0 голосов
/ 23 мая 2018

Я разрабатываю общедоступный API, который не имеет пользовательского интерфейса.

Некоторый контекст: когда новый пользователь делает запрос, он добавляется в базу данных с начальной ролью «Стандарт».,И хотя это неэффективно, любые пользователи-администраторы изменяются на эту роль путем ручного обновления записи в базе данных.

Я пытаюсь добиться следующего:

[Authorize(Roles = "Admin")]
public class ExampleController : ApiController
{
      public async Task ExampleFunction(RequestModel model)
      {
         // do stuff
      }
}

Однако документация и результаты, которые я обнаружил во время поиска, позволяют предположить, что необходим вид входа в систему, где проверяется личность пользователя, а затем им предоставляется токен авторизации для любых последующих запросов.

Есть ли способ использовать атрибут «Авторизация» без необходимости генерировать токен аутентификации и вместо этого проверять роль пользователей по их записи в базе данных?т.е.

User Record
  Id - 2121
  Name - Example Name
  Role(s) - Admin (check the role in the 'Authorize' attribute matches this value)

В настоящее время эти проверки ролей выполняются внутри функций контроллеров, т. е.

public class ExampleController : ApiController
{
      public async Task ExampleFunction(RequestModel model)
      {
         if(!await userService.isUserAdmin(model.UserId)){
             // user is not admin 
             // do stuff
         }
         // user is admin
         // do stuff
      }
}

До сих пор мое исследование показало, что то, чего я пытаюсь достичь, невозможно, иесли это так, то ничего страшного, мне просто не удалось найти окончательного ответа, и я надеялся, что кто-то здесь сможет.

...