2016-08-05 1 views
0

J'essaie d'obtenir tous les utilisateurs dans le groupe "Programmeurs" de AD.Obtenir les utilisateurs Active Directory dans le groupe

Si j'utilise l'entrée de répertoire LDAP://DC=Domain et filtre comme memberOf=CN=Programmers,CN=Users,DC=Domain, je peux obtenir la liste des utilisateurs.

Mais si j'utilise directement l'entrée LDAP://CN=Programmers,CN=Users,DC=Domain, je ne peux obtenir aucun résultat.

using (DirectoryEntry de = new DirectoryEntry(string.Format("LDAP://CN=Programmers,CN=Users,DC=Domain"))) 
using (DirectorySearcher ds = new DirectorySearcher(de)) 
{ 
    int pageIndex = PAGESIZE * nPage + 1; 
    ds.SearchScope = SearchScope.Subtree; 
    ds.Sort = new SortOption("samaccountname", SortDirection.Ascending); 
    ds.VirtualListView = new DirectoryVirtualListView(0, PAGESIZE - 1, pageIndex); 
    var results = ds.FindAll(); 
} 

Quelqu'un peut-il dire pourquoi?

La raison pour laquelle je veux utiliser ceci au lieu du filtre "memberOf", est pour la considération de la performance. Mais je ne suis pas sûr si cela va réellement améliorer la performance. La deuxième question est la suivante: existe-t-il une différence de performance entre ces deux méthodes?

Répondre

0

Il a finalement élaboré ...

Le code doit être:

ds.SearchScope = SearchScope.Base; 
ds.AttributeScopeQuery = "member"; 

Ensuite, il fonctionnera.