2015-01-04 88 views
0

我有這樣的PHP代碼:PHP ldap_connect +的ldap_bind無法綁定

$ldap = ldap_connect("aaa.bbbbb.cc") 
    or die("Could not connect to LDAP server."); 

ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3); 
ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0); 

$ldapbind = ldap_bind($ldap); 

if ($ldapbind) { 
    echo "LDAP bind successful..."; 
} else { 
    echo "LDAP bind failed..."; //end up here 
} 

而且我不能讓它成功綁定,我已經試過各種組合。 傳遞憑據,使用帶有「ldap://」的URI。結合到同一LDAP服務器時

下面的C#代碼工作正常:

var connection = new LdapConnection("aaa.bbbbb.cc"); 
connection.Bind(); 

的LDAP API用於PHP seemssomewhat難以調試,如果綁定失敗,因爲你沒有得到任何結果,所以我不知道如何看到什麼失敗,如果它不能訪問服務器,證書不正確,或其他東西..

所以,任何想法可能導致PHP代碼失敗?有什麼特別的我需要做的? (爲PHP啓用了LDAP擴展)

回答

1

我以前遇到過使用PHP LDAP的問題。

幸運的是,我發現這個在文檔註釋:

ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7); 

試圖打開一個連接,並綁定時,這將給你詳細的輸出。

我經常這樣做:

ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7); 
$ldap = ldap_connect("ldap://" . $domainController, $port); 
$bind = @ldap_bind($ldap, $username . $accountSuffix, $password); 
if (!$bind) { 
    // throw or something 
    echo ldap_error($ldap); // http://php.net/manual/en/function.ldap-error.php 
} 

維基百科有各個部分的一個很好的寫了LDAP協議。

+0

我得到沒有錯誤,只是結果-1從綁定調用... –

+0

已更新的回答。 –

相關問題