PHP LDAP提取DN并在绑定后将其放入变量并使用cn搜索数组

时间:2014-09-17 04:00:45

标签: php arrays ldap

请在此处查看代码: 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'])) 

1 个答案:

答案 0 :(得分:1)

dn条目不包含数组,而是直接包含DN-Entry。所以你的代码应该是这样的:

$distinguishedName = $ldapEntry[0]['dn'];

我已经创建了一个小小的要点来说明https://gist.github.com/heiglandreas/5689592的LDAP登录。请特别注意第68行