LDAP c ++ APIselect

我想在Linux下编写我自己的LDAP客户端,具体到我们的本地环境。 很可能我会用QT4来提供一个shiny的前端,没有太多的麻烦。

我发现这似乎没有标准的C ++库。 OpenLDAP提供了一个C API,并且还应该有一个C ++ API(实验性?)。

我需要使用C的东西还是有一个C ++的API有值得推荐?

Solutions Collecting From Web of "LDAP c ++ APIselect"

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

我没有找到适合我的目的的C ++包装器(这是在2006年,所以事情可能已经改变了)。 我直接与C api交互,这并不可怕,但确实有些古怪。 假设你去C / OpenLDAP路线,我可以为你提供一些技巧。

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

在OpenLDAP的情况下,一些RFC1823 API调用已被弃用,特别是在认证部分周围。 取决于谁分发了OpenLDAP库以及它将使用的版本将确定这些弃用的函数是否被禁用。

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

我发现下面的c ++包装有用。 开源的C ++包装

如果不知道你需要的库的具体细节,这个问题就不容易回答。

我会说,如果基于Qt的C ++库和源代码中可用 – 肯定是前锋。 如果C ++库依赖于其他一些非Qt框架,甚至不要尝试将它与Qt混合使用。

基于C的库通常具有较少的依赖关系,尽管有些尴尬,需要更多关注与C ++相比的细节(初始化/去初始化)(破坏类通常意味着释放与其相关的所有资源)。