Чтобы получить вошедшего в систему пользователя в MVC5, нам нужно было всего лишь:
using Microsoft.AspNet.Identity;
[Authorize]
public IHttpActionResult DoSomething() {
string currentUserId = User.Identity.GetUserId();
}
Теперь с ASP.NET Core я думал, что это должно работать, но выдает ошибку.
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Http;
private readonly UserManager<ApplicationUser> _userManager;
[HttpPost]
[Authorize]
public async Task<IActionResult> StartSession() {
var curUser = await _userManager.GetUserAsync(HttpContext.User);
}
Есть идеи?
РЕДАКТИРОВАТЬ: ответ Gerardo находится на пути, но чтобы получить фактический "Id" пользователя, это похоже на работу:
ClaimsPrincipal currentUser = this.User;
var currentUserID = currentUser.FindFirst(ClaimTypes.NameIdentifier).Value;