1

我想从活动目录中获取所有用户及其属性 我检查了许多主题,包括 Linq 到 LDAP +在此处输入链接描述

但一切似乎都很复杂。

我从这个开始:

public SearchResultCollection GetAllUsrs()
     {
         var dirEntry = new DirectoryEntry(string.Format("LDAP://{0}/{1}", "x.y.com", "DC=x,DC=y,DC=com"));
         var searcher = new DirectorySearcher(dirEntry)
         searcher.Filter = "(&(&(objectClass=user)(objectClass=person)))";
         searcher.PageSize = 999;

         return searcher.FindAll();

     }

我如何使用分页,因为活动目录当时只会返回 1000 条记录 + 我如何指定属性?

问题:我想使用控制台应用程序查询包含多达 60 K 用户的域我想指定属性性能非常重要。你能指导我实现这一目标的最佳方法吗?

4

2 回答 2

2

以下是使用LINQ to LDAP的方法:

using (var connection = new LdapConnection("x.y.com"))
{
     using (var context = new DirectoryContext(connection))
     {
          List<IDirectoryAttributes> users = context
               .Query("DC=x,DC=y,DC=com")
               .Where("(&(objectClass=user)(objectClass=person))")
               .InPagesOf(1000);
     }
}
于 2013-01-18T05:06:27.633 回答
2

不需要分页。AD 将返回 1000 多个对象。将 PageSize 保留为 0 并根据需要设置 SizeLimit。如果您不确定,请使用 int.MaxValue ;)。

于 2013-01-11T21:31:40.187 回答