我可以从PrincipalSearcher获得超过1000条记录吗?

时间:2015-11-20 10:50:04

标签: c# active-directory multiple-users

我正在尝试使用代码从Active Directory获取所有用户:

PrincipalContext ad = new PrincipalContext(contextType, adserviceName, adContext, ContextOptions.SimpleBind, username, password);
UserPrincipal u = new UserPrincipal(ad) {Name = "*"};
PrincipalSearcher search = new PrincipalSearcher { QueryFilter = u };
foreach (var principal in search.FindAll()) 
{
    //do something 
}

但它只返回前1000行。如何检索所有用户并且不使用DirectorySearcher。 谢谢。

3 个答案:

答案 0 :(得分:0)

我认为如果不使用 DirectorySearcher ,您就可以做到这一点。

代码段 -

// set the PageSize on the underlying DirectorySearcher to get all entries
((DirectorySearcher)search.GetUnderlyingSearcher()).PageSize = 1000;

另见If an OU contains 3000 users, how to use DirectorySearcher to find all of them?

答案 1 :(得分:0)

您需要获取基础public static boolean isCyanogenMod() { try { return Class.forName("cyanogenmod.os.Build") != null; } catch (Exception ignored) { } return false; } 并在其上设置DirectorySearcher属性:

PageSize

答案 2 :(得分:0)

您可以:

((DirectorySearcher)myPrincipalSearcher.GetUnderlyingSearcher()).SizeLimit = 20;