从active directory C#中获取所有用户

本文关键字:用户 获取 active directory | 更新日期: 2023-09-27 17:57:36

可能重复:
我能从Asp.Net中的DirectorySearcher获得1000多条记录吗
c#Active Directory服务findAll()只返回1000个条目

我在尝试从AD读取所有用户时遇到问题。Active directory包含3000多个用户,但我只能读取1000个。这是我的代码

public DirectoryEntry directoryEntry = new DirectoryEntry(ldap, userName, password);
public DirectorySearcher directorySearcher = new DirectorySearcher(directoryEntry);
var allUsers = directorySearcher.FindAll();

从active directory C#中获取所有用户

这是一个用户设置问题。根据这个页面,你必须将页面大小设置为1000才能获得1000多个结果:

OmegaMan:这很奇怪,必须将页面大小设置为1000才能获得超过1000张的记录。由于解决问题的方式,这是一个人们不会忘记的技巧/问题。

您需要在DirectorySearcher上设置PageSize属性,以获得分页搜索和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();