php ldap绑定过期密码

php ldap绑定过期密码,php,active-directory,ldap,adldap,Php,Active Directory,Ldap,Adldap,我正在使用adldap插件连接到Windows服务器广告,但据我所知,我的问题是php ldap_绑定 当用户键入错误的密码时,ldap_error(由adldap使用)返回的错误为“无效凭据”。到目前为止还不错 当用户密码过期或在AD中用户被设置为在下次登录时更改密码(新用户、密码重置等)时,就会出现问题。在这种情况下,无论用户输入什么密码进行身份验证,ldap_错误都会返回“无效凭据”。这意味着我无法判断用户是否真正知道过期密码 有人知道我该如何解决这个问题吗?因为我也遇到了同样的问题 这将

我正在使用adldap插件连接到Windows服务器广告,但据我所知,我的问题是php ldap_绑定

当用户键入错误的密码时,ldap_error(由adldap使用)返回的错误为“无效凭据”。到目前为止还不错

当用户密码过期或在AD中用户被设置为在下次登录时更改密码(新用户、密码重置等)时,就会出现问题。在这种情况下,无论用户输入什么密码进行身份验证,ldap_错误都会返回“无效凭据”。这意味着我无法判断用户是否真正知道过期密码


有人知道我该如何解决这个问题吗?

因为我也遇到了同样的问题

这将返回如下内容:

绑定到LDAP时出错: 80090308:LDAPPER:DSID-0C09003D0,注释:AcceptSecurityContext 错误,数据773,v2580

重要的部分是“数据”后面的代码,它表示数据

您可以使用以下函数分析子代码:

function parseExentedLdapErrorCode($message) {
    $code = null;
    if (preg_match("/(?<=data\s).*?(?=\,)/", $message, $code)) {
        return $code[0];
    }
    return null;
}
函数parseExentedLDAP错误代码($message){
$code=null;

如果(preg_match(“/”),您应该能够从服务器获取“真实”绑定错误,这将提供更多信息。然后您可以在查看详细信息。
function parseExentedLdapErrorCode($message) {
    $code = null;
    if (preg_match("/(?<=data\s).*?(?=\,)/", $message, $code)) {
        return $code[0];
    }
    return null;
}