2010-04-19 76 views
4

我想在Linux下編寫我自己的LDAP客戶端,具體到我們的本地環境。很可能我會使用QT4提供一個閃亮的前端,沒有太多的麻煩。LDAP C++ API選擇

我發現,似乎是這個沒有標準的C++庫。 OpenLDAP的提供了一個C API和也應該有一個C++ API(實驗?)的地方..

我需要使用C的東西或者是有一個C++ API在那裏推薦的價值?

回答

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()(其容易混淆的處理所有類型的AUTH的)

+0

順便說一句。我最終使用Perl。 Net :: LDAP非常棒。 – ypnos 2011-02-20 00:42:54

0

如果不知道你需要的庫的具體細節,這個問題不容易回答。

如果基於Qt C++庫,並提供源代碼,我會說 - 這會是肯定的領跑者。如果C++庫依賴於其他一些非Qt框架 - 甚至不要嘗試將它與Qt混合。

基於C的庫通常具有較少的依賴關係,雖然有點尷尬,需要更多的關注細節(初始化/去初始化)與C++相比(破壞類通常意味着釋放所有與它有關的資源)。

+0

你知道特定的LDAP庫嗎? – ypnos 2010-04-20 10:21:19

1

我發現以下C++包裝是有用的。 Open Source C++ wrapper

+1

封裝器是GPL下的許可證。它有不到1,5k行的代碼。除非你已經在使用GPL代碼,否則我懷疑它是完全有用的。 – Robin 2012-11-28 20:51:23