Api 即使在验证令牌后,用户仍为null
我有一个在Asp.NETCore2.1中设计的web API,我使用的是使用多租户令牌的自签名令牌 令牌已通过控制器上的Api 即使在验证令牌后,用户仍为null,api,asp.net-core,jwt,claims,Api,Asp.net Core,Jwt,Claims,我有一个在Asp.NETCore2.1中设计的web API,我使用的是使用多租户令牌的自签名令牌 令牌已通过控制器上的[Authorize]属性成功验证。现在,我尝试使用User.FindFirst(“sub”)?.Value访问同一主题中的主题 即使令牌经过身份验证,User的值也为空。我期待来自已验证令牌的索赔 我找不到用户值为空的原因。我找不到用户值为空的原因。 有什么问题吗?1。您如何知道“令牌已成功通过身份验证”?2.请向我们展示相关代码,包括启动和控制器。我能够判断它已被授权,因为
[Authorize]
属性成功验证。现在,我尝试使用User.FindFirst(“sub”)?.Value
访问同一主题中的主题
即使令牌经过身份验证,User
的值也为空。我期待来自已验证令牌的索赔
我找不到用户
值为空的原因。我找不到用户
值为空的原因。
有什么问题吗?1。您如何知道“令牌已成功通过身份验证”?2.请向我们展示相关代码,包括启动和控制器。我能够判断它已被授权,因为具有
[Authorize]
属性的控制器中的端点能够响应和返回数据。我可以通过从IHttpContextAccessor
访问名称来解决这个问题。我在控制器中注入了IHttpContextAccessor
,并使用httpContextAccessor.HttpContext.User.Identity.name
拉入。但是我仍然不明白为什么用户不在system.principal.identity.user
中。ASP.NET核心中根本没有这样一个内置的system.principal.identity.user
。用户主体应该存储在HttpContext.user
中。明白了。谢谢