Я разрабатываю общедоступный 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
}
}
До сих пор мое исследование показало, что то, чего я пытаюсь достичь, невозможно, иесли это так, то ничего страшного, мне просто не удалось найти окончательного ответа, и я надеялся, что кто-то здесь сможет.