C# 如何获取aspusers表的id?
我已经用C# 如何获取aspusers表的id?,c#,asp.net-core,asp.net-web-api,claims-based-identity,C#,Asp.net Core,Asp.net Web Api,Claims Based Identity,我已经用asp.net核心和Identity创建了一个登录名;我已经知道如何获取用户名和角色,但是如何获取创建用户时自动生成的id 我已经设法获得了id,但前提是我将其作为常量放在声明中的名称标识符中,并且我希望每次用户登录时都能获得它,因为即使该常量已经更改,它也会始终为我提供相同的用户 通过这种方式,我可以获得id,前提是我将其设置为常量: new Claim(ClaimTypes.NameIdentifier, "f75ce3f5-f51b-41af-bedb-cfefbe2327a1")
asp.net核心
和Identity
创建了一个登录名;我已经知道如何获取用户名
和角色
,但是如何获取创建用户时自动生成的id
我已经设法获得了id,但前提是我将其作为常量放在声明中的名称标识符中,并且我希望每次用户登录时都能获得它,因为即使该常量已经更改,它也会始终为我提供相同的用户
通过这种方式,我可以获得id,前提是我将其设置为常量:
new Claim(ClaimTypes.NameIdentifier, "f75ce3f5-f51b-41af-bedb-cfefbe2327a1"),
在这里,我创建了一个索赔清单:
private UserToken BuildToken(UserInfo userInfo, IList<string> roles)
{
var claims = new List<Claim>()
{
new Claim(JwtRegisteredClaimNames.UniqueName, userInfo.Email),
new Claim(ClaimTypes.Name, userInfo.Email),
new Claim(ClaimTypes.NameIdentifier, "f75ce3f5-f51b-41af-bedb-cfefbe2327a1"),
new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())
};
你试过下面的说法吗
var userId = _userManager.GetUserId(User);
或:
通过这种方式,在asp.net core 3.1中,我可以获得登录用户的id。非常感谢您的帮助,如果id是通过该代码获得的,但我还必须更改创建buildtoken的参数,以便在声明中使其可以传递id
var userId = _userManager.GetUserId(User);
var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);