我通过 php 使用以下代码连接到 MS AD 服务器:
<?php
$login='domain\\username';
$password='somepaswordwithç';
$ldap=ldap_connect("someserver.com");
if ($bind = @ldap_bind($ldap, $login, $password)) {
echo "ok";
}
else{
echo "error while connecting";
}
?>
它适用于其他字符,例如 +/- * "',但不适用于 ç 以及可能的其他一些特殊字符。
在我的原始代码中,我从帖子中获取值,但是当我将密码放入上面的代码中时,问题是一样的。
最佳答案
看来我忘记设置 ldap 选项:
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
所以正确的代码是:
<?php
$login='domain\\username';
$password='somepaswordwithç';
$ldap=ldap_connect("someserver.com");
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
if ($bind = @ldap_bind($ldap, $login, $password)) {
echo "ok";
}
else{
echo "error while connecting";
}
?>
关于php - LDAP 身份验证 php 不适用于某些字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41479347/