Как я могу получить идентификатор таблицы aspusers? - PullRequest
0 голосов
/ 28 мая 2020

Я создал логин с asp.net core и Identity; Я уже знаю, как получить username и role, но как мне получить id, который создается автоматически при создании пользователя?

Мне уже удалось получить идентификатор, но только если я помещу его как константу в NameIdentifier внутри Claim, и я хочу получать его каждый раз, когда пользователь входит в систему, поскольку константа всегда будет давать мне одного и того же пользователя, даже если она уже изменилась.

Таким образом я могу получить идентификатор, только если я поставлю его постоянным:

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

вот ищу пользователя 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;

1 Ответ

1 голос
/ 28 мая 2020

Попробуйте следующий оператор:

var userId  = _userManager.GetUserId(User);

Или:

var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);

Таким образом, в asp. net core 3.1 я могу получить зарегистрированный в идентификаторе пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...