Как получить текущие данные пользователя? - PullRequest
0 голосов
/ 10 февраля 2019

Я добавил новые свойства в ApplictionUser и теперь хочу его получить?

public class ApplicationUser : IdentityUser
{
   [Required]
   [StringLength(50)]
   public string FirstName { get; set; }

   [Required]
   [StringLength(50)]
   public string LastName { get; set; }

   //....
}

Я пытался получить с помощью User.Identity..., но я не могу получить имена и фамилии?

Как это сделать?Я буду очень благодарен .

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

Я получил firstName и SecondName следующим образом:

Шаг 1.

// DbContext.
private readonly ApplicationDbContext _context;

public HomeController()
{
   _context = new ApplicationDbContext();
}

Шаг 2.

// Getting Id of Current LoggedIn User.
var UserId = User.Identity.GetUserId();

Шаг 3.

var User = _context.Users.Single(user => user.Id == UserId);

Эти шаги сработали для меня.

0 голосов
/ 10 февраля 2019

User.Identity возвращает только абстракцию System.Security.Principal.IIdentity, которая не содержит никаких пользовательских свойств и ApplicationUser экземпляр.

Один из вариантов - использовать UserManager<ApplicationUser>, которыйможет быть введен в контроллер, если ваш Startup класс имеет конфигурацию для ASP.NET Core Identity:

var user = await _userManager.FindByIdAsync(userId);

Он будет возвращать ровно ApplicationUser экземпляр.

Другой вариант - получить пользователя изВаш DbContext напрямую (по умолчанию его имя ApplicationDbContext. Он также может быть введен в контроллер).

var user = await db.Users.SingleOrDefaultAsync(u => u.Id == userId);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...