Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 从Access Token WebApi Asp.net Core获取用户信息_Asp.net Core_Identityserver4_Asp.net Core Identity - Fatal编程技术网

Asp.net core 从Access Token WebApi Asp.net Core获取用户信息

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();

我正在使用dotnet-core3-preview中新的ASP.NET核心身份API授权,文档可在此处找到

我成功地运行了典型的登录过程,令牌被设置并发送到承载令牌中。但是现在我有一个api端点,它应该从数据库返回一些用户详细信息,所以我尝试从令牌中提取用户id以查询数据库

然而,我无法在任何声明中找到id,根据我下面的屏幕截图,我如何才能做到这一点

[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