using (DirectorySearcher srch = new DirectorySearcher(String.Format("(memberOf= {0})",p_Target.DistinguishedName)))
{
srch.PageSize = 2;
SearchResultCollection results = results = srch.FindAll();
int count = results.Count;
}
count = 3(三)而不是 2。为什么呢?我不想将所有结果都放在一页上。我知道 PageSize = 2 太小了,但我在这种情况下设置该值只是为了测试目的(实际上它会更多)。
pageSize 是设置一次分页搜索返回的记录数。分页搜索是 LDAP 协议级别的基础内容。这对你来说是透明的。尽管您将 PageSize 设置为 2,DirectorySearcher 仍会为您返回所有结果,但在您的情况下,会返回两个分页搜索回复数据包。
要执行您想要的操作,您应该使用 SizeLimit。它将控制总共返回的记录数。
这是另一件棘手的事情。 Windows Server 在服务器端设置了限制。在每个分页搜索结果中,最多只能返回 1000 个条目。因此,如果结果超过 1000 个条目,则需要小心设置 PageSize 和 SizeLimit。如果您设置 PageSize=0(表示无限制)和 SizeLimit=0(表示无限制),您将收到错误消息,因为 Windows 服务器无法在一页中返回超过 1000 个条目。如果您设置 Pagesize = 800 且 SizeLimit=0(表示无限制),您将获得所有结果,如果您查看网络嗅探器,您将看到有一堆 LDAP 分页搜索结果。在每个分页搜索结果中,您会看到 800 个条目。
EDIT
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)