Identidade principal do ASP.NET - obtenha o usuário atual
Para obter o usuário atualmente conectado no MVC5, tudo o que precisávamos era:
using Microsoft.AspNet.Identity;
[Authorize]
public IHttpActionResult DoSomething() {
string currentUserId = User.Identity.GetUserId();
}
Agora, com o ASP.NET Core, pensei que isso deveria funcionar, mas gera um erro.
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);
}
Alguma ideia?
EDITAR: A resposta de Gerardo está no caminho certo, mas para obter o "ID" real do usuário, isso parece funcionar:
ClaimsPrincipal currentUser = this.User;
var currentUserID = currentUser.FindFirst(ClaimTypes.NameIdentifier).Value;