c++ - OpenLDAP API 搜索

标签 c++ c api ldap openldap

我正在尝试使用 OpenLDAP API 进行 LDAP 搜索。我已经成功连接并绑定(bind)到服务器。我已经使用 ldap_search_ext_s() 完成了搜索,并使用 ldap_parse_result() 解析了结果。但是,我似乎不知道如何获得搜索的实际结果。不幸的是,OpenLDAP C API 最近发生了变化,Internet 上的许多现有示例并未使用当前的 API。

我已经尝试使用 ldap_first_attribute()、ldap_next_attribute() 和 ldap_get_values(),如 http://www-archive.mozilla.org/directory/csdk-docs/search.htm 所示(示例 6-13)。但是,看来 ldap_get_values() 现已弃用,而 ldap_get_values_len() 是最接近的替代品。新函数返回 berval**,而不是返回 char**。我尝试通过创建值为 barval**[i] 的 berval* 来调整此示例代码。这会导致编译成功,但会在 ber_scanf() 处出现核心转储。

有人知道如何使用 OpenLDAP C API 获取 LDAP 搜索的结果吗?

更新:

特别是,我询问如何获取搜索消息中请求的属性。

最佳答案

搜索请求的结果始终包含一系列 SearchResultEntrySeachResultReference 消息,该系列由 SearchResultDone 消息终止。调用 getNextAttribute(以任何语言和任何 API)毫无意义,因为搜索结果是消息列表。 API 应该以调用者可以简单地检索条目或引用列表的方式打包条目或引用数组。寻找一种可以做到这一点的方法。

关于c++ - OpenLDAP API 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17350682/

相关文章:

c++ - 从文件到变量?

c++ - 迭代器如何在 C++ 中的列表上工作?

c - 在 ListView 中添加一个新行

c - 在 Cooja/Contiki 上模拟不同温度

c++ - 派生类中虚函数调用的优化

c++ - 我是否从 "const char *"正确转换为 "TCHAR*"?

c++ - 将 const char 传递给不兼容的类型 double

java - Google Maps API 和标记之间的自定义折线路线

json - 将特定 JSON 字段从 .responseText 提取到单个 Excel 单元格

api - 判断一条推文是否是转发?