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

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

Barbara Streisand
發布: 2024-12-27 10:52:10
原創
855 人瀏覽過

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

如何在ASP.NET MVC 5 Identity 中取得目前ApplicationUser

與舊的Membership 機制不同,ASP.NET Identity 提供了一個用於存取目前使用者物件的API。取得方法如下:

使用 UserManager

在控制器或您有權存取預設使用者管理員的其他區域中,您可以使用 FindById方法:

using Microsoft.AspNet.Identity;

public ActionResult Create()
{
    var user = UserManager.FindById(User.Identity.GetUserId());
    return View();
}
登入後複製

中非控制器

如果您是外部控制器,則可以使用以下程式碼:

using Microsoft.AspNet.Identity;
using System.Web;

public class MyCustomService
{
    private HttpContext _httpContext;

    public MyCustomService(HttpContext httpContext)
    {
        _httpContext = httpContext;
    }

    public ApplicationUser GetCurrentUser()
    {
        var userId = _httpContext.User.Identity.GetUserId();
        var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
        return userManager.FindById(userId);
    }
}
登入後複製

使用Owin 上下文(2015 年3 月更新)

從存取目前使用者時可能需要此方法OWIN 上下文,例如來自 SignalR Hub 或標準機制不可用的其他場景:

using Microsoft.AspNet.Identity;
using System.Web;

public class MySignalRHub : Hub
{
    public ApplicationUser GetCurrentUser()
    {
        var user = System.Web.HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(System.Web.HttpContext.Current.User.Identity.GetUserId());
        return user;
    }
}
登入後複製

以上是如何在 ASP.NET MVC 5 Identity 中檢索目前 ApplicationUser?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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