2011-01-24 18 views

उत्तर

13

Roles.GetUsersInRole रिटर्न एक भूमिका में उपयोगकर्ता नामों की एक string[] है। क्या तुम सच में MembershipUser वस्तुओं चाहते हैं, आप उपयोग कर सकते हैं:

var list = Roles.GetUsersInRole("roleName").Select(Membership.GetUser).ToList() 
बेशक

, इस प्रदर्शन गहन है के रूप में यह प्रत्येक उपयोगकर्ता के लिए एक बार डेटाबेस पूरी करता है।

यदि आप प्रदाता-आजादी को छोड़ने के इच्छुक हैं, तो आप अंतर्निहित डेटाबेस से सीधे पूछ सकते हैं और सभी उपयोगकर्ताओं को एक विशिष्ट भूमिका में प्राप्त करने के लिए डेटाबेस सर्वर पर शामिल हो सकते हैं।

+0

चूक गया web.config में – Dorathoto

0

उपयोग RoleProvider वर्ग http://msdn.microsoft.com/en-us/library/system.web.security.roleprovider.aspx

यह एक FindUsersInRole विधि

+0

कृपया ध्यान दें FindUsersInRole दो पैरामीटर दूसरा जो की एक स्ट्रिंग है कि हर उपयोगकर्ता नाम शामिल करना चाहिए है स्वीकार करता है (यानी की तरह मिलान करने के लिए)। यह एक बेवकूफ तरीका है जिसका उपयोग _all_ उपयोगकर्ताओं को उनके उपयोगकर्ता नाम की भूमिका में खोजने के लिए नहीं किया जा सकता है। – dpant

+0

@dpant RoleProvider एक अमूर्त वर्ग है! मेरे उत्तर में दिए गए लिंक पर उदाहरण बिल्कुल "एक उदाहरण" है - आप परिभाषित करते हैं कि विधि कैसे काम करती है और रोलप्रोवाइडर क्लास और पूरी तरह से अमूर्त तरीकों को विस्तारित करके यह क्या करती है ताकि यदि आप दूसरे पैरामीटर को अनदेखा करना चाहते हैं और बस नल में पास करना चाहते हैं आप ऐसा कर सकते हैं। मेरा सुझाव है कि आप समझने के लिए समय लें कि ये बातें अर्थहीन टिप्पणियां पोस्ट करने से पहले कैसे काम करती हैं। – Rob

1

के माध्यम से जाओ आप का उपयोग कर सकते हैं:

ListBox1.DataSource = System.Web.Security.Roles.GetUsersInRole("Role_Name"); 
ListBox1.DataBind(); 
संबंधित मुद्दे

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