2
我正在建立與Active Directory用戶/員工列表的連接。我通過.NET完成了這項工作,但無法在我的PHP應用程序中使用它。php ldap_search不返回結果
我consistantly得到0
我使用SAM帳戶和SAM帳戶作爲過濾器嘗試計數,這不會改變結果。
我成功連接,爲改變$ LDAP將不再能夠找到服務器。
我使用的有效憑證,如改變$ AUTHUSER或$ authPath提供授權的錯誤消息。
的的ldap_bind(我相信)工作,因爲它執行搜索和輸出的0.1
這裏計數是我的代碼:
<?php
try{
$ldap = "vmc-dc.CompanyName.vmc";
$authUser = "vmc\\MyUsername";
$authPass = "MyPassword";
$baseDn = "dc=vmc-dc,dc=CompanyName,dc=com";
$filter="(&(objectClass=user)(samaccountname=*))";
$conn = ldap_connect($ldap, 389) ;
if ($conn) {
ldap_set_option($conn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($conn, LDAP_OPT_REFERRALS, 0);
// binding to ldap server
$ldapbind = ldap_bind($conn, $authUser, $authPass);
// verify binding
if ($ldapbind) {
//$sr=ldap_read($conn, $baseDn, $filter);
$sr=ldap_search($conn, $baseDn, $filter);
$number_returned = ldap_count_entries($conn,$sr);
echo "Count: " . $number_returned . "<br/>";
$entry = ldap_get_entries($conn, $sr);
ldap_close($conn);
echo "value = '" . $entry[0] . "'";
} else {
echo "LDAP conn ok...";
}
}
} catch (Exception $e) {
}
?>
驗證是否可以使用ldapsearch命令行工具檢索所需的數據:'的ldapsearch -h主機名-p端口-b的baseDn -s子-D DN -w密碼「(&(objectClass的=用戶)(Sam帳戶= * ))「1.1」。 –
如果你想要所有的用戶,'(&(objectCategory = person)(objectClass = user))'是你最好的選擇。 –
對於Brian的觀點,對objectCategory = person的需求是排除計算機對象。 – geoffc