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