Ldap和Bind无法正常工作

时间:2014-07-30 14:11:38

标签: php

我在PHP中创建了一个小程序,用于检查用户名和密码是否正确。我得到了" LDAP绑定成功..."每当我输入正确的密码,但一旦我将更改Active Directory中的密码并立即输入新密码或旧密码,我得到" LDAP绑定成功..."信息。我无法理解为什么我会得到" LDAP绑定成功..."我输入旧密码的消息,因为它应该给我一个错误。以下是我的代码。我在这里缺少什么?我如何修改我的代码,以便即使在更改密码后我将得到正确的答复。请注意,我是PHP编程的新手。

<html>
<body>
    <?php
$ldaprdn  = $_POST['name'];     // ldap rdn or dn
$ldappass = $_POST['password']; // associated password

// connect to ldap servers
$ldapconn = ldap_connect("ldap://server")
    or die("Could not connect to LDAP server.");


    // binding to ldap server
$ldapbind = ldap_bind($ldapconn,$ldaprdn,$ldappass);

   if($ldapbind){
        echo "LDAP bind successful...";
    } else {
       $errno = ldap_errno( $ldapconn );
       echo $errno;
    }



?>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

听起来您的目录已启用anonymous binding

我认为尝试使用名称和密码进行绑定不会回溯到匿名绑定,因此可能还有其他问题。

我注意到你从$_POST获取了绑定名称/传递(未经过无限制的BTW,tisk tisk),所以可能你的表单实际上没有设置为发布数据(导致空白值),或者你的字段名称是不正确。我知道如果$ldaprdn == ""那么它将匿名绑定,所以检查该值以确保它是有用的。

我发现您正在使用Active Directory,因此您会发现this adldap library更有用