2017-09-08 118 views
0

我正在使用.net核心的Novell.Directory.Ldap库来搜索活动目录。总的来说,这个库运行得非常好,我已经成功地将它用于许多目录。Novell.Directory.Ldap分页的搜索结果

但是,我遇到了一个问题,搜索限制被限制为1,000条记录 - 我遇到了一个更像10,000条目的AD。

我知道我可以设置限制来增加Novell库中的软限制,然后使用DC的搜索限制,从默认情况下我可以看到这个限制为5,000。

如果我使用完整的框架,我可以使用具有分页搜索选项的System.DirectoryServices,这将允许我使用较小的页面大小进行搜索,但最终会获得所有结果。

有什么办法可以在Novell.Directory.Ldap库中执行等效的分页搜索操作吗?

+0

仅仅因为DIT有10,000个条目,并不是您需要> 1000个搜索结果的原因。如果你使用了那么多,你真的做错了。但是如果Novell代码不支持分页搜索结果控制,我会感到惊讶。他们几年前进入这个领域。 – EJP

+0

@EJP我正在做一个审计,我需要所有的人 - 只是不在一批。 Novell代码支持似乎被标记为垂直窗口列表的东西(尽管我认为它是一个错字,应该是虚拟窗口列表) - 这可能是关键。今天早上我会看看。 –

+0

您可以在不超出搜索结果限制的情况下执行审计。您可以递归列出任何子树的内容。 – EJP

回答

2

Simple Paged Results Control可以设置为一个窗口,用于从Microsoft Active Directory检索所有条目。

Active Directory servers have a default server-side limit of 1000 entries作为在单个请求中返回的结果的最大数量。如果查询结果超出此限制,则使用分页结果控件,页面大小等于或小于服务器端限制,以便检索查询的所有结果。

所以,你应该能够做,只要页面大小小于1000

不知道的实现,但I did find a sample in Github这一点。

+0

非常感谢 - 这真的很好。对于任何想在将来使用此库进行此操作的人,请注意,Nuget(Novell.Directory.LDAP.netstandard)上的版本不适用于这些附加控件,因为该版本似乎为每个搜索都创建了一个新连接,导致AD服务器发生异常) - 而是从GitHub链接克隆回购(记住采用coreclr分支)并使用它。 –