【问题标题】:Get Active Directory users in Group获取组中的 Active Directory 用户
【发布时间】:2016-08-05 13:13:44
【问题描述】:

我正在尝试从 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”过滤器,是出于性能考虑。但我不确定这是否真的会提高性能。那么第二个问题是:这两种方法在性能上有什么区别吗?

【问题讨论】:

    标签: c# active-directory ldap active-directory-group memberof


    【解决方案1】:

    终于成功了……

    代码应该是:

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

    然后就可以了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多