[英]Get Active Directory users in Group
我正在尝试从AD获取“程序员”组中的所有用户。
如果我使用目录项作为LDAP://DC=Domain
并过滤为memberOf=CN=Programmers,CN=Users,DC=Domain
,则可以获得用户列表。
但是,如果我直接将条目用作LDAP://CN=Programmers,CN=Users,DC=Domain
,则不会得到任何结果。
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();
}
谁能告诉我为什么?
我之所以要使用此过滤器而不是“ memberOf”过滤器,是出于性能方面的考虑。 但是我不确定这是否会真正提高性能。 因此,第二个问题是:这两种方法之间是否存在性能差异?
终于解决了...
代码应为:
ds.SearchScope = SearchScope.Base;
ds.AttributeScopeQuery = "member";
然后它将起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.