Я создал класс обслуживания для обработки этого в моем приложении. С моего контроллера я установил ApplicationUser user
, а затем вызвал созданную мной службу user = await this._userServices.GetUserInformation(User)
(пользователь с заглавными буквами является вошедшим в систему пользователем)
В классе обслуживания пользователя это то, что у меня есть:
public class UserServices : IUserServices
{
private UserManager<ApplicationUser> _userManager;
public UserServices(
UserManager<ApplicationUser> userManager)
{
this._userManager = userManager;
}
public async Task<ApplicationUser> GetUserInformation(ClaimsPrincipal userClaim)
{
var userId = userClaim?.FindFirst("UserId")?.Value; // returns null if no user logged in
var user = await _userManager.FindByIdAsync(userId);
return user;
}
}
После того, как вы это сделаете, вы можете провести нулевую проверку вашего пользователя.
Полученная отсюда информация о пользователе, которая находится в вашей таблице AspNetUsers, будет иметь поле, которое вы нужно.
Надеюсь, это поможет.