為了將Article 實體的Author 屬性設定為目前經過驗證的用戶,檢索完整的ApplicationUser至關重要
使用身份擴展,您可以使用以下程式碼輕鬆檢索當前用戶:
ApplicationUser currentUser = db.Users.FirstOrDefault(x => x.Id == User.Identity.GetUserId());
然而,這種方法有缺點。它需要直接資料庫查詢,引入額外的依賴關係以及與未來資料庫變更的潛在不一致。
要克服這些限制,請使用由ASP.NET Identity 框架:
var user = UserManager.FindById(User.Identity.GetUserId());
此方法可以有效地檢索當前用戶,而不需要直接資料庫存取。它確保與未來 API 變更的一致性,並消除引入新上下文依賴項的風險。
控制器外部存取使用者物件時,從目前HttpContent 的OwinContext 擷取使用者ID:
ApplicationUser user = System.Web.HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(System.Web.HttpContext.Current.User.Identity.GetUserId());
此方法可確保與OWIN 提供的使用者管理。
以上是如何在 ASP.NET MVC 5 Identity 中高效檢索目前 ApplicationUser?的詳細內容。更多資訊請關注PHP中文網其他相關文章!