ASP.NET MVC 5:擷取目前ApplicationUser
在ASP.NET MVC 5 的Identity 框架中存取目前登入的ApplicationUser 需要一個登入目前的ApplicationUser具體的方法。與舊的Membership機制不同,Identity提供了與使用者資料互動的一致介面。
檢索ApplicationUser對象
取得目前ApplicationUser的完整對象,不要直接查詢資料庫。相反,請使用提供的API:
var user = UserManager.FindById(User.Identity.GetUserId());
對於非同步操作,請使用:
var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());
確保包含下列using 語句:
using Microsoft.AspNet.Identity;
存取用戶ID
在控制器之外,用戶ID可擷取自:System.Web.HttpContext.Current.User.Identity.GetUserId();
場景:存取ApplicationDbContext 和UserManager
如果您不在Account 控制器中,請將這些屬性和建構函式程式碼新增至您的控制器中:protected ApplicationDbContext ApplicationDbContext { get; set; } protected UserManager<ApplicationUser> UserManager { get; set; } public YourController() { this.ApplicationDbContext = new ApplicationDbContext(); this.UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(this.ApplicationDbContext)); }
Azure資料庫注意事項
將 Identity Framework 與遠端 Azure 資料庫連線結合使用時,您可能會遇到「錯誤:19 - 實體連線無法使用」訊息。若要解決此問題,請在專案中實作自訂 SqlAzureExecutionStrategy。以上是如何在 ASP.NET MVC 5 中擷取目前登入的 ApplicationUser?的詳細內容。更多資訊請關注PHP中文網其他相關文章!