सदस्यशक्ति चयन में उपयोगकर्ताओं को "ग्राहक" भूमिका में कैसे पुनर्प्राप्त किया जा सकता है?उपयोगकर्ताओं को भूमिका के आधार पर कैसे प्राप्त करें?
उत्तर
Roles.GetUsersInRole
रिटर्न एक भूमिका में उपयोगकर्ता नामों की एक string[]
है। क्या तुम सच में MembershipUser
वस्तुओं चाहते हैं, आप उपयोग कर सकते हैं:
var list = Roles.GetUsersInRole("roleName").Select(Membership.GetUser).ToList()
बेशक
, इस प्रदर्शन गहन है के रूप में यह प्रत्येक उपयोगकर्ता के लिए एक बार डेटाबेस पूरी करता है।
यदि आप प्रदाता-आजादी को छोड़ने के इच्छुक हैं, तो आप अंतर्निहित डेटाबेस से सीधे पूछ सकते हैं और सभी उपयोगकर्ताओं को एक विशिष्ट भूमिका में प्राप्त करने के लिए डेटाबेस सर्वर पर शामिल हो सकते हैं।
उपयोग RoleProvider वर्ग http://msdn.microsoft.com/en-us/library/system.web.security.roleprovider.aspx
यह एक FindUsersInRole विधि
कृपया ध्यान दें FindUsersInRole दो पैरामीटर दूसरा जो की एक स्ट्रिंग है कि हर उपयोगकर्ता नाम शामिल करना चाहिए है स्वीकार करता है (यानी की तरह मिलान करने के लिए)। यह एक बेवकूफ तरीका है जिसका उपयोग _all_ उपयोगकर्ताओं को उनके उपयोगकर्ता नाम की भूमिका में खोजने के लिए नहीं किया जा सकता है। – dpant
@dpant RoleProvider एक अमूर्त वर्ग है! मेरे उत्तर में दिए गए लिंक पर उदाहरण बिल्कुल "एक उदाहरण" है - आप परिभाषित करते हैं कि विधि कैसे काम करती है और रोलप्रोवाइडर क्लास और पूरी तरह से अमूर्त तरीकों को विस्तारित करके यह क्या करती है ताकि यदि आप दूसरे पैरामीटर को अनदेखा करना चाहते हैं और बस नल में पास करना चाहते हैं आप ऐसा कर सकते हैं। मेरा सुझाव है कि आप समझने के लिए समय लें कि ये बातें अर्थहीन टिप्पणियां पोस्ट करने से पहले कैसे काम करती हैं। – Rob
एक ListBox
के लिए बाध्य के लिए यह http://msdn.microsoft.com/en-us/library/system.web.security.roleprovider.findusersinrole.aspx
के माध्यम से जाओ आप का उपयोग कर सकते हैं:
ListBox1.DataSource = System.Web.Security.Roles.GetUsersInRole("Role_Name");
ListBox1.DataBind();
चूक गया web.config में –
Dorathoto