2013-10-30 12 views
15

Nasıl mvc 5'de oturum açan kullanıcının rolünü öğrenebilirim? mvc 5 kullanıcı rolünü kontrol edin

Ben bu kullanıcı tarafından sitede loggin sonra bu kodu

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; 
    } 

kullanıcıyı yaptı. Denetleyicide, bu kullanıcının role == "admin" olup olmadığını kontrol edebilir miyim? Hızlı çalışmayan tek bir yol buldum.

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

Başka yollarımız var mı?

+2

Alex'in yanıtını kullanın veya bir kullanıcının denetleyiciye/web sayfasına girmesine izin verilip verilmediğini kontrol ederseniz, denetleyicinizin üzerinde [Yetkilendir (Roller = "admin")] kullanın. –

cevap

78
bool result = User.IsInRole("admin") 

Çok daha kolay.

+0

Ah, sen beni dövüyorsun .. :-) –

+1

Lanet olsun! Yaklaşmıştım! :) – Duke

+0

Microsoft.AspNet.Identity'yi kullanmayı unutma – John