2013-10-30 7 views
15

एमवीसी 5 में कैसे लॉग इन उपयोगकर्ता की भूमिका मिल सकती है?एमवीसी 5 उपयोगकर्ता की भूमिका जांचें

मैं इस कोड

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

मुझे लगता है कि उपयोगकर्ता द्वारा साइट पर loggin के बाद से उपयोगकर्ता बनाया है। नियंत्रक में मैं कैसे जांच सकता हूं कि उस उपयोगकर्ता की भूमिका == "व्यवस्थापक" है या नहीं? मुझे केवल एक ही रास्ता मिला जो तेजी से काम नहीं करता है।

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

क्या हमारे पास अन्य तरीके हैं?

+2

एलेक्स के उत्तर का उपयोग करें या यदि आपकी जांचकर्ता को नियंत्रक/वेबपृष्ठ उपयोग [प्राधिकरण (भूमिकाएं = "व्यवस्थापक")] में आपके नियंत्रक के ऊपर अनुमति दी जानी चाहिए। –

उत्तर

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

अधिक आसान। :)

+0

आह, आपने मुझे इसे हराया .. :-) –

+1

अरे! मैं क़रीब था! :) – Duke

+0

Microsoft.AspNet.Identity का उपयोग करना न भूलें – John

संबंधित मुद्दे