具有 [Authorize] 属性的 JWT 身份验证
Posted
技术标签:
【中文标题】具有 [Authorize] 属性的 JWT 身份验证【英文标题】:JWT auth with [Authorize] attribute 【发布时间】:2018-12-03 02:45:26 【问题描述】:有人能解释一下默认的 Asp.Net 核心属性 [Authorize](使用 Asp.Net Identity)如何理解它应该如何解码 JWT 令牌并获取必要的信息以进行授权访问吗? 在形成 JWT 令牌时,我为用户放入令牌 RoleClaims,[Authorize] 是否基于声明授予他们对特定 actionMethod 的访问权限
【问题讨论】:
【参考方案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 + "!";
【讨论】:
以上是关于具有 [Authorize] 属性的 JWT 身份验证的主要内容,如果未能解决你的问题,请参考以下文章
.NET Core Authorize 属性与外部 JWT 身份验证微服务?
JWT Authentication .Net core [Authorize] 属性被控制器忽略
ASP.NET Core JWT 身份验证以保护 webAPI [Authorize] 属性错误 401 Unauthorized