快速获取所有用户+指定属性+从LDAP使用分页的方法

本文关键字:LDAP 方法 分页 属性 获取 用户 | 更新日期: 2023-09-27 17:52:41

我想从活动目录中获得所有用户及其属性我检查了许多主题,包括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条记录+我如何指定属性?

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

快速获取所有用户+指定属性+从LDAP使用分页的方法

不需要分页。AD将返回1000多个对象。将PageSize设置为0,并根据需要设置SizeLimit。使用int。

下面是如何使用LINQ到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);
     }
}