我想使用JWT保护ASP.NET Core Web API.另外,我想有一个选项,直接在控制器动作属性中使用来自令牌有效负载的角色.
现在,虽然我确实找到了如何将其与策略一起使用:
Authorize(Policy="CheckIfUserIsOfRoleX")
ControllerAction()...
Run Code Online (Sandbox Code Playgroud)
我想更好地选择使用通常的东西:
Authorize(Role="RoleX")
Run Code Online (Sandbox Code Playgroud)
其中Role将从JWT有效负载自动映射.
{
name: "somename",
roles: ["RoleX", "RoleY", "RoleZ"]
}
Run Code Online (Sandbox Code Playgroud)
那么,在ASP.NET Core中实现这一目标的最简单方法是什么?有没有办法通过一些设置/映射自动工作(如果是这样,在哪里设置它?)或者我应该在验证令牌后,拦截生成ClaimsIdentity
并手动添加角色声明(如果是,在何处/如何操作)那?)?