2011-01-31 16 views

उत्तर

15

आप सभी रोल्स उपयोगकर्ता प्राप्त करने के लिए Roles.GetRolesForUser() विधि का उपयोग कर सकते हैं। इस तरह इसका इस्तेमाल करें;

string[] rolesuserbelongto = Roles.GetRolesForUser(); 

आपके पास स्ट्रिंग सरणी में सभी भूमिकाएं होंगी।

आप भी इस तरह कि विशेष रूप से उपयोगकर्ता के लिए भूमिकाओं प्राप्त करने के लिए एक पैरामीटर के रूप में एक उपयोगकर्ता नाम पारित कर सकते हैं:

string[] rolesuserbelongto = Roles.GetRolesForUser("Shekhar_Pro"); 
+0

क्या नाम स्थान के लिए है "भूमिकाएं" कक्षा रखने के लिए जोड़ा जाना चाहिए? System.Web.Security का उपयोग कर – Ixtlan

+0

@Ixtlan - ; – Avital

0

नहीं पूरी तरह से यकीन है कि आप सवाल उठाते हैं।

आप कर सकते हैं:

this.User.IsInRole(); 
//loop and check whether the user is in your role. 

this, एक page class के अनुरूप तो आप केवल एक पृष्ठ के अंदर उपरोक्त कोड लिख सकते हैं और this.User रिटर्न एक IPrincipal होगा।

6

सबसे सामान्य तरीका IPrinciple प्राप्त करना है और फिर उस पर IsInRole() को कॉल करना है। आप अपने रनटाइम पर्यावरण पर सिद्धांत कैसे प्राप्त करते हैं। यह उदाहरण उपयोगकर्ता के खाते के अंतर्गत चल रहे ऐप्स के लिए अच्छा काम करता है।

उदाहरण:

static void PrintIsInAdministrators() 
    { 
     // There are many ways to get a principle... this is one. 
     System.Security.Principal.IPrincipal principle = System.Threading.Thread.CurrentPrincipal; 
     bool isInRole = principle.IsInRole("MyDomain\\MyRole"); 
     Console.WriteLine("I {0} an Admin", isInRole ? "am" : "am not"); 
    } 
0
string[] userroles = Roles.GetRolesForUser(Page.User.Identity.Name); 
foreach(var role in userroles) 
{ 
Response.Write(role); 
} 
0

Roles.GetRolesForUser(); मुझे त्रुटि The Role Manager feature has not been enabled दे दी है।

आप ASP.NET Identity UserManager उपयोग कर रहे हैं आप इसे इस प्रकार प्राप्त कर सकते हैं:

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

var roles = userManager.GetRoles(User.Identity.GetUserId()); 

आपको GUID से उपयोगकर्ता के लिए मुख्य परिवर्तन किया है तो इस कोड का उपयोग उदाहरण के लिए Int करने के लिए:

var roles = userManager.GetRoles(User.Identity.GetUserId<int>()); 
संबंधित मुद्दे