首页 >后端开发 >C++ >如何在 ASP.NET MVC 5 Identity 中检索当前 ApplicationUser?

如何在 ASP.NET MVC 5 Identity 中检索当前 ApplicationUser?

Barbara Streisand
Barbara Streisand原创
2024-12-27 10:52:10905浏览

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 月更新)< /h3>

从访问当前用户时可能需要此方法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().FindById(System.Web.HttpContext.Current.User.Identity.GetUserId());
        return user;
    }
}

以上是如何在 ASP.NET MVC 5 Identity 中检索当前 ApplicationUser?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn