PHP LDAP登录问题
我的PHP LDAP登录有点问题。我的第一次绑定成功,但即使凭据正确,我的第二次绑定也不成功。我尝试使用我在第一个绑定中用于第二个绑定的凭据来确保它工作,并且确保它可以在第一个绑定。为什么我不能第二次绑定PHP LDAP登录问题,php,ldap,bind,Php,Ldap,Bind,我的PHP LDAP登录有点问题。我的第一次绑定成功,但即使凭据正确,我的第二次绑定也不成功。我尝试使用我在第一个绑定中用于第二个绑定的凭据来确保它工作,并且确保它可以在第一个绑定。为什么我不能第二次绑定 <?php // Define $myusername and $mypassword $username=$_POST['username']; $password=$_POST['password']; // using ldap bind $ldaprdn = 'uid=MYU
<?php
// Define $myusername and $mypassword
$username=$_POST['username'];
$password=$_POST['password'];
// using ldap bind
$ldaprdn = 'uid=MYUID,ou=special,ou=people,o=myo.com,dc=mydc,dc=com'; // ldap rdn or dn
$ldappass = 'PASSWORD'; // associated password
// connect to ldap server
$ldapconn = ldap_connect("ldaps://MYLDAPSERVER", ###)
or die("Could not connect to LDAP server.");
if ($ldapconn)
{
// binding to ldap server
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
// verify binding
if ($ldapbind)
{
$result = ldap_search($ldapconn, "ou=people,o=myo.com,dc=mydc,dc=com", "uid=$username");
$info = ldap_get_entries($ldapconn, $result);
$userdn = $info[0]["dn"];
$count = $info["count"];
ldap_unbind($ldapconn);
if ($count == 1)
{
$ldapbinduser = ldap_bind($ldapconn, $userdn, $password);
if ($ldapbinduser)
{
echo "Sucess you made it all the way<br />";
}
else
{
echo "Invalid Login Details, please try again(1001)";
}
}
else
{
echo "Invalid Login Details, please try again(1002)";
}
}
else
{
echo "LDAP bind failed(1000)";
}
}
尽管它的名称可能暗示了一些不同的东西,但实际上会终止连接句柄,因此在解除绑定后,连接将不再可用。从代码中删除ldap\u unbind()
调用,一切都会按预期工作。我想我需要在开始第二个绑定之前终止第一个绑定,但显然情况并非如此。它会在搜索后自动终止绑定吗?实际上,在使用后续的ldap\u bind()
-调用重新绑定之前,或者在使用ldap\u unbind()
终止连接之前,您一直与用户绑定。LDAP没有注销用户的概念。