ASP MVC:如何从 ApplicationUser 获取角色

本文关键字:ApplicationUser 获取 角色 MVC ASP | 更新日期: 2023-09-27 18:31:35

在 MVC 5 ASP.NET 中,在控制器中,我已将发出请求的用户与:

ApplicationUser user = System.Web.HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(System.Web.HttpContext.Current.User.Identity.GetUserId());

使用 ApplicationUser 实例,如何获取用户的所有角色?

ASP MVC:如何从 ApplicationUser 获取角色

您可以使用用户管理器获取用户和分配的角色。

var userManager = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();

然后你可以像你已经做的那样获取你的用户,你也可以通过调用GetRoles方法来获取特定用户的角色

userManager.GetRoles(userId);
        List<string> roles = new UserManager().GetRoles(userIdString)).ToList();

下面需要的类是使用 VS 2015 在 4.5 项目中使用 ASP.NET 自动创建的。 文件名为 IdentityModels.cs

默认安装了 4 个 Nuget 包,包括 Microsoft.AspNet.WebApi v5.2.3

 public class UserManager : UserManager<ApplicationUser>
    {
        public UserManager()
            : base(new UserStore<ApplicationUser>(new ApplicationDbContext()))
        {
        }
    }
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext()
            : base("DefaultConnection")
        {
        }
    }

public class ApplicationUser : IdentityUser
{
}