首頁 > 後端開發 > C++ > 如何在 ASP.NET MVC 5 Identity 中高效檢索目前 ApplicationUser?

如何在 ASP.NET MVC 5 Identity 中高效檢索目前 ApplicationUser?

DDD
發布: 2024-12-25 09:37:37
原創
1020 人瀏覽過

How to Efficiently Retrieve the Current ApplicationUser in ASP.NET MVC 5 Identity?

ASP.NET MVC 5 - 身分:取得目前ApplicationUser

為了將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 變更的一致性,並消除引入新上下文依賴項的風險。

與OWIN 同步

控制器外部存取使用者物件時,從目前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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板