mvc 5 check user role

43,565
bool result = User.IsInRole("admin") 

Much easier. :)

Share:
43,565

Related videos on Youtube

Duke
Author by

Duke

I am .net developer from Ukraine. If you have some ideas I can help then Skype me duke_nuken23. Also I am making startup http://freemusiclib.com

Updated on July 09, 2022

Comments

  • Duke
    Duke almost 2 years

    How in mvc 5 I can found out role of logged user?

    I made the user by this code

        private bool AddUserAndRole()
        {
            IdentityResult ir;
            var rm = new RoleManager<IdentityRole>
                (new RoleStore<IdentityRole>(new ApplicationDbContext()));
            ir = rm.Create(new IdentityRole("admin"));
    
            var user = new ApplicationUser() { UserName = "Admin" };
            var result = UserManager.Create(user, "somepassword");
            UserManager.AddToRole(user.Id, "admin");
    
            return true;
         }
    

    After I loggin on site by that user. How in controller I can check if that user have role == "admin" or not? I found only one way which doesnt look works fast.

            var rm = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
            var role = rm.FindByName("admin");
            bool result = User.IsInRole(role.Name); //true
    

    Do we have other ways?

    • Casey Sebben
      Casey Sebben over 10 years
      use Alex's answer or if your checking if a user should be allowed into the controller/webpage use [Authorize(Roles = "admin")] above your controller.
  • Henk Mollema
    Henk Mollema over 10 years
    Ah, you beat me to it.. :-)
  • Duke
    Duke over 10 years
    Damn it! I was close! :)
  • John
    John over 9 years
    don't forget using Microsoft.AspNet.Identity