我想在Linux下编写自己的LDAP客户端,特定于我们的本地环境。最有可能的是,我会使用QT4来提供一个没有太多麻烦的闪亮前端。
我发现似乎没有标准的C ++库。 OpenLDAP提供了一个C API,在某个地方也应该有一个C ++ API(实验?)。
我是否需要使用C的东西,或者是否有值得推荐的C ++ API?
答案 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 ++相比(破坏类通常意味着释放所有绑定到它的资源)。