आपको इस फ़िल्टर के साथ एक क्वेरी बनाने में सक्षम होना चाहिए:
(&(objectClass=user)(sAMAccountName=yourUserName)
(memberof=CN=YourGroup,OU=Users,DC=YourDomain,DC=com))
और जब आप अपने LDAP सर्वर के खिलाफ दौड़ते हैं, यदि आपको परिणाम मिलता है, तो आपका उपयोगकर्ता "yourUserName" वास्तव में समूह का सदस्य है "CN = YourGroup, OU = उपयोगकर्ता, DC = YourDomain, DC = com
कोशिश करो और देखो अगर यह काम करता है!
यदि आप C # / VB.Net और System.DirectoryServices का उपयोग करते हैं, तो इस स्निपेट को चाल चलनी चाहिए:
DirectoryEntry rootEntry = new DirectoryEntry("LDAP://dc=yourcompany,dc=com");
DirectorySearcher srch = new DirectorySearcher(rootEntry);
srch.SearchScope = SearchScope.Subtree;
srch.Filter = "(&(objectClass=user)(sAMAccountName=yourusername)(memberOf=CN=yourgroup,OU=yourOU,DC=yourcompany,DC=com))";
SearchResultCollection res = srch.FindAll();
if(res == null || res.Count <= 0) {
Console.WriteLine("This user is *NOT* member of that group");
} else {
Console.WriteLine("This user is INDEED a member of that group");
}
सावधानी का शब्द: यह केवल तत्काल समूह सदस्यता के लिए परीक्षण करेगा, और यह आपके डोमेन में "प्राथमिक समूह" (आमतौर पर "cn = उपयोगकर्ता") कहा जाता है में सदस्यता के लिए परीक्षण नहीं करेगा। यह नेस्टेड सदस्यता को नहीं संभालता है, उदाहरण के लिए उपयोगकर्ता ए ग्रुप ए का सदस्य है जो ग्रुप बी का सदस्य है - यह तथ्य कि उपयोगकर्ता ए वास्तव में ग्रुप बी का सदस्य है और साथ ही यहां प्रतिबिंबित नहीं होता है।
न घुलनेवाली तलछट