从活动目录C#获取所有用户

时间:2013-02-04 12:54:17

标签: c# active-directory

  

可能重复:
  Can I get more than 1000 records from a DirectorySearcher in Asp.Net?
  c# Active Directory Services findAll() returns only 1000 entries

尝试从AD读取所有用户时出现问题。活动目录包含超过3000个用户,但我只能读取1000.这是我的代码

public DirectoryEntry directoryEntry = new DirectoryEntry(ldap, userName, password);
public DirectorySearcher directorySearcher = new DirectorySearcher(directoryEntry);

var allUsers = directorySearcher.FindAll();

2 个答案:

答案 0 :(得分:3)

这是用户设置问题。根据此page,您必须将页面大小设置为1000以获得超过1000个结果:

  

OmegaMan:Ya奇怪,人们必须将页面大小设置为1000以获得超过1000的记录。这是一个不会忘记的技巧/问题,因为必须解决问题。

答案 1 :(得分:2)

您需要在PageSize上设置DirectorySearcher属性,以便分页搜索并返回1000多行:

public DirectoryEntry directoryEntry = new DirectoryEntry(ldap, userName, password);

public DirectorySearcher directorySearcher = new DirectorySearcher(directoryEntry);
directorySearcher.PageSize = 500;  // ADD THIS LINE HERE !

var allUsers = directorySearcher.FindAll();