獲取當前登錄的用戶在MVC5,我們所要做的就是:現在ASP.NET核心身份 - 獲得當前用戶
using Microsoft.AspNet.Identity;
[Authorize]
public IHttpActionResult DoSomething() {
string currentUserId = User.Identity.GetUserId();
}
,與ASP.NET核心我認爲這應該工作,但它會拋出一個錯誤。
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);
}
任何想法?
編輯:赫拉爾的迴應是正軌,只能獲得實際的「ID」的用戶,這似乎工作:
ClaimsPrincipal currentUser = this.User;
var currentUserID = currentUser.FindFirst(ClaimTypes.NameIdentifier).Value;
你的問題到底是什麼? –
你只需要Id?我編輯了我的答案,以添加如何使用更多花哨的_userManager.GetUserId(用戶) –
是的,主要是我需要AspNetUsers表中的Id或會話中的Id。 currentUser.FindFirst(ClaimTypes.NameIdentifier).Value使用聲明給出Id。它也適用於UserManager!謝謝Gerardo!一種方法比另一種更有效嗎? – jbraun