.NetCore3.1 使用JWT认证授权时获取当前请求的用户名

最近使用JWT来给WebApi进行授权认证,在项目中使用 HttpContext.User.Identity.Name 获取当前登录的用户名一直获取不到,以往都是这样获取,这个问题查了很久都没找到相关资料

特此记录一下,避坑。

在JWT生成Token时一定要加入ClaimTypes.Name这样才能获取到用户名

.NetCore3.1 使用JWT认证授权时获取当前请求的用户名

 

.NetCore3.1 使用JWT认证授权时获取当前请求的用户名
public static string GetToken(string userName)
        {
            var claims = new List<Claim>();
            claims.AddRange(new[] {
                new Claim(ClaimTypes.Name, userName),
                new Claim(JwtRegisteredClaimNames.Sub, userName),
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                new Claim(JwtRegisteredClaimNames.Iat, DateTimeOffset.Now.ToUnixTimeSeconds().ToString(), ClaimValueTypes.Integer64)
            });
            var tokenManagement = UtilConfHelper.GetTokenManagement();
            DateTime now = DateTime.Now;
            var jwtSecurityToken = new JwtSecurityToken(
                issuer: tokenManagement.Issuer,
                audience: tokenManagement.Audience,
                claims: claims,
                notBefore: now,
                expires: now.Add(TimeSpan.FromMinutes(tokenManagement.AccessExpiration)),
                signingCredentials: new SigningCredentials(new SymmetricSecurityKey(Encoding.ASCII.GetBytes(tokenManagement.Secret)), SecurityAlgorithms.HmacSha256)
            );
            string token = new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken);
            return token;
        }
.NetCore3.1 使用JWT认证授权时获取当前请求的用户名

 

 获取就使用 Response.HttpContext.User.Identity.Name 获取userName

  分类: .NetCore 好文要顶 关注我 收藏该文 .NetCore3.1 使用JWT认证授权时获取当前请求的用户名 .NetCore3.1 使用JWT认证授权时获取当前请求的用户名.NetCore3.1 使用JWT认证授权时获取当前请求的用户名 五峰
关注 - 0
粉丝 - 0     +加关注 0 0       « 上一篇: 在Jenkins容器中安装docker-compose
» 下一篇: .NetCore3.1 使用Autofac获取IContainer posted @ 2020-10-24 19:01  五峰  阅读(361)  评论(0)  编辑  收藏

  刷新评论刷新页面返回顶部 发表评论 编辑预览  

 退出 订阅评论 我的博客

 

[Ctrl+Enter快捷键提交]

  【推荐】News: 大型组态、工控、仿真、CADGIS 50万行VC++源码免费下载
【推荐】有你助力,更好为你——博客园用户消费观调查,附带小惊喜!
【推荐】博客园x丝芙兰-圣诞特别活动:圣诞选礼,美力送递
【推荐】了不起的开发者,挡不住的华为,园子里的品牌专区
【福利】AWS携手博客园为开发者送免费套餐+50元京东E卡
【推荐】未知数的距离,毫秒间的传递,声网与你实时互动
【推荐】新一代 NoSQL 数据库,Aerospike专区新鲜入驻   相关博文:
· .NETcore中使用jwt来对api进行身份验证
· JWT
· jwt
上一篇:权限验证


下一篇:【XCTF 攻防世界 web 练习详解系列(一)】【view_source的三种解法】