В ASP. Net Ядро, если ваш Контроллер наследует Microsoft.AspNetCore.Mvc.Controller
, вы можете получить IClaimsPrincipal
из свойства User и получить фактический "Id" пользователя,
using System.Security.Claims;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity;
ClaimsPrincipal currentUser = this.User;
var currentUserID = currentUser.FindFirst(ClaimTypes.NameIdentifier).Value;
Вы также можете получить данные всех полей (включая Id) из объекта User базы данных:
1.DI UserManager
private readonly UserManager<ApplicationUser> _userManager;
public HomeController(UserManager<ApplicationUser> userManager)
{
_userManager = userManager;
}
2. Используйте его, как показано ниже:
var id = userManager.GetUserId(User); // get user Id
var user = await userManager.GetUserAsync(User); // get user's all data