相关疑难解决方法(0)

ASP.NET Core JWT映射角色声明为ClaimsIdentity

我想使用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并手动添加角色声明(如果是,在何处/如何操作)那?)?

c# asp.net-core asp.net-core-webapi

23
推荐指数
3
解决办法
4万
查看次数

标签 统计

asp.net-core ×1

asp.net-core-webapi ×1

c# ×1