Usted debe ser capaz de crear una consulta con este filtro aquí:
(&(objectClass=user)(sAMAccountName=yourUserName)
(memberof=CN=YourGroup,OU=Users,DC=YourDomain,DC=com))
y, al ejecutar este en contra de su servidor LDAP, si se obtiene un resultado, el usuario "yourusername" es de hecho un miembro del grupo "CN = yourgroup, OU = Users, DC = SuDominio, DC = com
probar y ver si esto funciona!
Si utiliza C#/VB.Net y S ystem.DirectoryServices, este fragmento debe hacer el truco:
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");
}
Una advertencia: esto sólo prueba para las pertenencias a grupos inmediatos, y no pondrá a prueba para ser miembro de lo que se llama el "grupo primario" (por lo general " cn = Usuarios ") en su dominio. No maneja membresías anidadas, p. El usuario A es miembro del Grupo A que es miembro del Grupo B; el hecho de que el Usuario A también sea realmente miembro del Grupo B tampoco se refleja aquí.
Marc
Ver también preguntas como [recursiva consulta de pertenencia a un grupo LDAP] (http://stackoverflow.com/q/7826927/1260896) –