如何获取LDAP查询结果的指定切片?寻求通用解决方案
LDAP查询结果切片的通用实现问题
结论:LDAP协议本身没有通用的“直接跳过前N条获取结果切片”的机制,以下是具体分析和可行的替代方案:
依赖有序属性的范围过滤:
这是你提到的方式,比如利用employeeNumber这类全局唯一、连续递增的数值属性,通过设置过滤条件(&(...)(employeeNumber>=5000)(employeeNumber<=5999))直接定位目标条目。但这种方案不通用——不是所有LDAP条目都有这类属性,且属性值必须满足连续、可排序的要求。标准LDAP分页控制(Paged Results Control):
LDAP标准定义了分页查询机制(OID:1.2.840.113556.1.4.319),允许客户端每次请求一页结果(比如每页1000条)。但这种方式本质还是需要从第一页开始逐页获取,直到拿到第5页(对应5000-5999条),无法直接跳过前4999条。客户端需要在每次请求中携带服务器返回的分页cookie来获取下一页,不能直接跳转到指定页。特定服务器的扩展功能:
部分商业LDAP服务器(如Microsoft Active Directory)提供了自定义扩展,支持类似SQL的OFFSET/LIMIT逻辑,但这属于厂商私有实现,不属于LDAP协议标准,无法在所有LDAP服务器上通用。
简言之,没有不依赖特定属性或服务器扩展的通用方案来直接获取指定范围的结果切片,LDAP的设计决定了它无法直接跳过前N条数据,必须通过遍历或已知属性范围来定位目标条目。
内容的提问来源于stack exchange,提问作者azmeuk
相关产品推荐
相关产品推荐

