пожалуйста, посмотрите код здесь:
http://pastebin.com/ZLHG6m07
Этот код работает, он привязывается к серверу ldap, код запрашивает у пользователя «username», а «Password» выполняет вторичную привязку и ищет массив. Используя пользовательский CN, я ищу и создаю массив, вытягивая DN. Проблема в том, что я не знаю, как извлечь полное DN из массива и правильно поместить его обратно в переменную, чтобы я мог связать и аутентифицировать ldap с этим пользователем. В частности, я борюсь с этой частью кода, он неправильно помещает [dn] в переменную $ Однозначный:
$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']))
dn
запись не содержит массив, но напрямую DN-запись. Итак, ваш код должен выглядеть так:
$distinguishedName = $ldapEntry[0]['dn'];
Я создал небольшую суть, чтобы проиллюстрировать LDAP-Login на https://gist.github.com/heiglandreas/5689592. Обратите особое внимание на строку 68
Других решений пока нет …