You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET中JWT载荷含正确声明但用户声明为空的问题

ASP.NET JWT认证中提取用户声明为空的问题

我是ASP.NET新手,一直在尝试实现JWT认证,但受此问题困扰已久。我获取到了JWT,想要从中提取用户声明,但声明始终为空。我已将该token放到jwt.io上验证,所有内容都正常,实在不知道还能做什么了。以下是我用于提取声明的方法,若需更多信息请告知:

[HttpGet("UserInfo")]
[Authorize]
public ActionResult<UserAccount> GetCurrentUser()
{   
    try
    {
        var headers = Request.Headers;
        var authHeader = headers["Authorization"].ToString();

        var token = authHeader.StartsWith("Bearer ") ? authHeader.Substring(7) : authHeader;

        Console.WriteLine(token); // 这里能输出正确的token,且token包含正确的声明
        var identity = _http.HttpContext.User;
        if(identity != null)
        {
            var userClaims = identity.Claims;
            Console.WriteLine(userClaims.Count()); // 这里始终输出0
            var userName = userClaims.FirstOrDefault(userClaim => userClaim.Type == ClaimTypes.Name)?.Value;

            return Ok(new
            {
                UserName = userName
            });
        }
        return BadRequest();
    }
    catch(Exception e)
    {
        return BadRequest(e.Message);
    }
}

内容的提问来源于stack exchange,提问作者haknook

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 21:53:20