如何获取 aspusers table 的 ID?
How can I get the id of the aspusers table?
我已经使用 asp.net core
和 Identity
创建了一个登录;我已经知道如何获取username
和role
,但是如何获取创建用户时自动生成的id
?
我已经设法获取了 id,但前提是我将它作为常量放在 Claim
中的 NameIdentifier
中,并且我想在每次用户登录时获取它,因为常量总是给我相同的用户,即使它已经改变了。
这样我就可以得到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())
};
这里我在controller中查找用户id:
var user = await _userManager.GetUserAsync(HttpContext.User);
concepto.id_Prop = Guid.Parse(user.Id.ToString());
context.Add(concepto);
await context.SaveChangesAsync();
return concepto.id_Conceptos;
你试过下面的语句了吗:
var userId = _userManager.GetUserId(User);
或者:
var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
通过这种方式,在asp.net core 3.1中,我可以获得登录用户的id。
我已经使用 asp.net core
和 Identity
创建了一个登录;我已经知道如何获取username
和role
,但是如何获取创建用户时自动生成的id
?
我已经设法获取了 id,但前提是我将它作为常量放在 Claim
中的 NameIdentifier
中,并且我想在每次用户登录时获取它,因为常量总是给我相同的用户,即使它已经改变了。
这样我就可以得到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())
};
这里我在controller中查找用户id:
var user = await _userManager.GetUserAsync(HttpContext.User);
concepto.id_Prop = Guid.Parse(user.Id.ToString());
context.Add(concepto);
await context.SaveChangesAsync();
return concepto.id_Conceptos;
你试过下面的语句了吗:
var userId = _userManager.GetUserId(User);
或者:
var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
通过这种方式,在asp.net core 3.1中,我可以获得登录用户的id。