Asp.net core 从Access Token WebApi Asp.net Core获取用户信息
我正在使用dotnet-core3-preview中新的ASP.NET核心身份API授权,文档可在此处找到 我成功地运行了典型的登录过程,令牌被设置并发送到承载令牌中。但是现在我有一个api端点,它应该从数据库返回一些用户详细信息,所以我尝试从令牌中提取用户id以查询数据库 然而,我无法在任何声明中找到id,根据我下面的屏幕截图,我如何才能做到这一点Asp.net core 从Access Token WebApi Asp.net Core获取用户信息,asp.net-core,identityserver4,asp.net-core-identity,Asp.net Core,Identityserver4,Asp.net Core Identity,我正在使用dotnet-core3-preview中新的ASP.NET核心身份API授权,文档可在此处找到 我成功地运行了典型的登录过程,令牌被设置并发送到承载令牌中。但是现在我有一个api端点,它应该从数据库返回一些用户详细信息,所以我尝试从令牌中提取用户id以查询数据库 然而,我无法在任何声明中找到id,根据我下面的屏幕截图,我如何才能做到这一点 [HttpGet] [授权] 公共异步任务GetUserByToken(){ var ls=User.Claims.AsQueryable();
[HttpGet]
[授权]
公共异步任务GetUserByToken(){
var ls=User.Claims.AsQueryable();
返回Ok(ls);
}
用户id可以在索赔中找到:http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier
:
var userID = User.Claims.Where(a => a.Type == ClaimTypes.NameIdentifier).FirstOrDefault().Value;
该id值等于ASP.NET Identity创建的
AspNetUsers
表中的id
列。我更喜欢使用更短的id:
var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value
var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value