LDAP c ++ API选择

时间:2010-04-19 20:33:03

标签: c++ linux api ldap

我想在Linux下编写自己的LDAP客户端,特定于我们的本地环境。最有可能的是,我会使用QT4来提供一个没有太多麻烦的闪亮前端。

我发现似乎没有标准的C ++库。 OpenLDAP提供了一个C API,在某个地方也应该有一个C ++ API(实验?)。

我是否需要使用C的东西,或者是否有值得推荐的C ++ API?

3 个答案:

答案 0 :(得分:5)

我实际上是为我的日常工作为OpenLDAP的C API编写了一个C ++包装器,这不是我最愉快的经历。

我没有找到合适的C ++包装器用于我的目的(这是在2006年所以事情可能已经发生了变化)。我最终直接与C api交互,这并不可怕,但确实有一些奇怪之处。假设您进入C / OpenLDAP路线,我可以为您提供一些提示。

我发现有些奇怪的东西,C API在RFC1823中定义,这意味着几乎每个库都有相同的API。

在OpenLDAP的情况下,不推荐使用许多RFC1823 API调用,特别是在身份验证部分。取决于分发OpenLDAP库的人员以及它将确定是否已禁用这些已弃用的函数的版本。

避免弃用API的主要更改是从ldap_init()ldap_open()切换到ldap_initialize()并使用ldap_sasl_bind()(这会混淆地处理所有类型的身份验证)

答案 1 :(得分:1)

我发现以下c ++包装器很有用。 Open Source C++ wrapper

答案 2 :(得分:0)

如果不了解您需要的库的具体信息,这个问题就不容易回答。

我想说如果C ++库基于Qt并且在源代码中可用 - 那肯定会成为领跑者。如果C ++库依赖于其他一些非Qt框架 - 甚至不要尝试将它与Qt混合使用。

基于C的库通常具有较少的依赖性,虽然有点笨拙并且需要更多关注细节(初始化/取消初始化)与C ++相比(破坏类通常意味着释放所有绑定到它的资源)。