У меня есть этот код PHP:
$ldap = ldap_connect("aaa.bbbbb.cc")
or die("Could not connect to LDAP server.");
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
$ldapbind = ldap_bind($ldap);
if ($ldapbind) {
echo "LDAP bind successful...";
} else {
echo "LDAP bind failed..."; //end up here
}
И я не могу заставить его успешно связываться, я перепробовал все виды комбинаций.
Передача учетных данных, используя URI с «ldap: //».
Следующий код C # отлично работает при привязке к тому же серверу LDAP:
var connection = new LdapConnection("aaa.bbbbb.cc");
connection.Bind();
LDAP API для PHP кажется довольно трудным для отладки, так как, если связывание не удается, вы не получите никакого результата, поэтому я не знаю, как увидеть, что не получается, если он не может получить доступ к серверу, неверные учетные данные или что-то еще ..
Итак, есть идеи, что может привести к сбою кода PHP? что-то особенное мне нужно сделать?
(Расширение LDAP включено для PHP)
У меня были проблемы с PHP LDAP раньше.
К счастью, я нашел это в комментариях к документу:
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
Что даст вам подробный вывод при попытке открыть соединение и связать.
Я обычно делаю это:
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
$ldap = ldap_connect("ldap://" . $domainController, $port);
$bind = @ldap_bind($ldap, $username . $accountSuffix, $password);
if (!$bind) {
// throw or something
echo ldap_error($ldap); // http://php.net/manual/en/function.ldap-error.php
}
В Википедии есть хорошее описание различных частей протокола LDAP.
Других решений пока нет …