php - LDAP 身份验证 php 不适用于某些字符

标签 php active-directory ldap

我通过 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/

相关文章:

c# - Active Directory 和 PrimaryPermission

java - 使用 objectGUID 进行查询 - Spring LDAP 模板

python - 在 Django 中从外部 Active Directory 提取数据

php - 使用 PHP 清理 HTML5(防止 XSS)

php - 在 Yii2 中重用查询简写时如何避免字段不明确?

php - 如何更改Opencart服务器时区?

php - MySQL - 将 LIKE 运算符与 UNHEX() 函数结合使用

在 Active Directory 上开发的 C++ api

active-directory - 获取人群

tomcat kerberos认证+ldap授权