【问题标题】:JWT auth with [Authorize] attribute具有 [Authorize] 属性的 JWT 身份验证
【发布时间】:2018-12-03 02:45:26
【问题描述】:
有人能解释一下默认的 Asp.Net 核心属性 [Authorize](使用 Asp.Net Identity)如何理解它应该如何解码 JWT 令牌并获取必要的信息以进行授权访问吗?
在形成 JWT 令牌时,我为用户放入令牌 RoleClaims,[Authorize] 是否基于声明授予他们对特定 actionMethod 的访问权限
【问题讨论】:
标签:
asp.net-web-api
asp.net-core
asp.net-identity
jwt
【解决方案1】:
您可以使用以下代码访问您的声明:
User.Claims.FirstOrDefault(el => el.Type == claim)?.Value
【解决方案2】:
更多详情请点击此链接
Create JWT & Authorize
[Authorize]
[HttpPost]
public string Post()
{
var identity = HttpContext.User.Identity as ClaimsIdentity;
IEnumerable<Claim> claim = identity.Claims;
var UserName = claim.Where(c => c.Type == "UserName").Select(c => c.Value).SingleOrDefault();
return "Welcome to " + UserName + "!";
}