更新
更新:使用 LDAP 浏览器免费版(在此处查看)很好,因为您可以简单地浏览 LDAP 服务器,它可以帮助您了解是否可以绑定匿名等。但最大的好处是获得DN
(复制和粘贴)。之后,我能够读取数据。
我遇到了以下问题,这就是我解决的方法:
问题 1
问题 1:即使我可以通过 LDAP 浏览器软件匿名连接,也无法绑定
解决方案:按照上面的建议在绑定之前添加以下行:
ldap_set_option( $ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3 );
ldap_set_option( $ldapconn, LDAP_OPT_REFERRALS, 0 );
在此之后,我能够绑定...
问题 2
原帖如下图:
我似乎无法搜索,我正在使用 LDAP Browser 4.5 免费版来确保一切正常...
这是我的代码:
function ldap_anon_connect($ein){
$ldaphost = "ldap://link_to_ldap.com";
//create a connection to ldap server
$ldapconn = ldap_connect($ldaphost) or die("Couldn't connect to " .$ldaphost);
if ($ldapconn) {
ldap_set_option( $ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3 );
ldap_set_option( $ldapconn, LDAP_OPT_REFERRALS, 0 );
$ldapbind = ldap_bind($ldapconn);
if ($ldapbind) {
// if binds, look some stuff up
$info = ldap_annon_get_profile($ein, $ldapconn);
return $info;
}
else{
echo "Invalid EIN. Please Try again";
die();
}
}
}
function ldap_annon_get_profile($ein, $ldapconn){
$filter = "(cn=".$ein.")";
$justthese = array(
"cn","sn","givenName","displayName","mail","EmployeeClass","ManagerEIN",
"mobile","title","c","PersonalTitle"
);
$sr = ldap_search($ldapconn, "o=CO,ou=COplc,ou=people", $filter, $justthese);
$info = ldap_get_entries($ldapconn, $sr);
return $info;
}
我已经仔细检查了我的 DN=" o=CO,ou=COplc,ou=people
" 这是正确的字符串,因为我可以在 LDAP 浏览器中查找这些内容...
有任何想法吗?