请在此处查看代码: http://pastebin.com/ZLHG6m07
此代码正常工作,它绑定到ldap服务器,代码要求用户的“用户名”和“密码”执行辅助绑定,并搜索数组。使用用户的CN,我搜索并创建一个数组,拉动DN。问题是,我不知道如何从数组中提取完整的DN,并将其正确地放回变量中,以便我可以与该用户绑定和验证ldap。具体来说,我正在努力解决这部分代码,它没有正确地将[dn]放入$ distinguishedName变量中:
$ldapCount = @ldap_count_entries($ldapConnection, $ldapSearch);
if (!$ldapCount) {
die('account not found');
} else {
if (!$ldapEntry = @ldap_get_entries($ldapConnection, $ldapSearch)) {
die('Could not get ldap entry');
}
$distinguishedName = $ldapEntry[0]['dn'][0];
print_r($ldapEntry);
if (empty($distinguishedName)) {
die('Account information not found');
}
if(!@ldap_bind($ldapConnection, $distinguishedName, $_POST['password']))
答案 0 :(得分:1)
dn
条目不包含数组,而是直接包含DN-Entry。所以你的代码应该是这样的:
$distinguishedName = $ldapEntry[0]['dn'];
我已经创建了一个小小的要点来说明https://gist.github.com/heiglandreas/5689592的LDAP登录。请特别注意第68行