Asp MVC:如何从ApplicationUser

时间:2016-01-24 11:16:55

标签: c# .net asp.net-mvc asp.net-mvc-5 owin

在ASP.NET MVC 5中,在控制器中,我已经通过以下方式接收发出请求的用户:

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

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

2 个答案:

答案 0 :(得分:8)

您可以使用UserManager获取用户和分配的角色。

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

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

userManager.GetRoles(userId);

答案 1 :(得分:0)

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

下面使用VS 2015在ASP.NET 4.5项目中自动创建了所需的类。文件名是 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
{
}