php ldap_search не возвращает результаты - PullRequest
2 голосов
/ 28 декабря 2011

Я устанавливаю соединение с нашим списком пользователей / сотрудников Active Directory.Я сделал это через .NET, но не могу заставить его работать в моем приложении PHP.

Я постоянно получаю счет 0. 0. 1003 *

Я пытался использовать samaccountname и sAMaccountname в качестве фильтров, это не меняет результат.

Я успешно подключаюсь, поскольку при изменении $ ldap сервер больше не будет найден.

Я использую действительные учетные данные, как при изменении $ authUser или $ authPathпредоставить авторизованное сообщение об ошибке.

Работает ldap_bind (я предполагаю), потому что он выполняет поиск и выводит счетчик 0.

Вот мой код:

<?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) {
}
?>

1 Ответ

0 голосов
/ 01 января 2012

Интересно, если ваш фильтр слишком широкий, все объекты пользовательского класса (включая компьютеры, по мнению Брайана Десмонда) и возвращает более 1000 найденных объектов.В этом случае AD выдаст ошибку и ничего не вернет.Я ожидаю, что вы получите возвращенную ошибку, так что это может быть маловероятным.Но более ограниченный фильтр и / или повторение с помощью отдельного инструмента LDAP могут помочь подтвердить эту идею.

...