我正在开发一个没有用户界面的公共API。
某些上下文:当新用户发出请求时,他们会以“'标准”的初始角色添加到数据库中。虽然效率很低,但任何管理员用户都可以通过手动更新数据库中的记录来修改为该角色。
我试图实现以下目标:
[Authorize(Roles = "Admin")]
public class ExampleController : ApiController
{
public async Task ExampleFunction(RequestModel model)
{
// do stuff
}
}
但是,documentation以及我通过搜索找到的结果都表明需要登录视图,其中检查用户身份,然后为他们提供身份验证令牌任何后续请求。
有没有办法利用'授权'属性而不必生成身份验证令牌,而是根据数据库中的记录验证用户角色?即。
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
}
}
到目前为止,我的研究表明我想要实现的目标是不可能的,如果情况确实如此,那么我还是设法找不到明确的答案,并希望有人能够。