php 的 ldap 身份验证间歇性失败
ldap auth with php fails intermittently
我组装了一个基本的网络应用程序,实际的网络应用程序本身运行良好。但是我想使用我们现有的 ldap 服务器添加用户身份验证。虽然 ldap 脚本似乎间歇性地工作,但在前几次尝试登录时会失败并显示 'access denied' 消息,然后它将进行身份验证。我 运行 脚本在没有应用程序的情况下独立存在,并且适用相同的行为。
我似乎无法在任何地方解决问题,我只能假设它发生在 ldap 端而不是 php 端。我已经包含了下面的脚本,任何帮助都会很棒。
写的时候3次认证失败,2次通过...
<?php
$user = $_POST['login-name'];
$password = $_POST['login-pass'];
$ldap_user = 'uid='.$user.',ou=people,dc=ourdomain,dc=com,dc=au';
$ldap_pwd = $password;
$ldaphost = 'ldap://ldapserver.domain.com';
$ldapport = 389;
$ds = ldap_connect($ldaphost, $ldapport)
or die("Could not connect to $ldaphost");
if ($ds)
{
$username = $ldap_user;
$upasswd = $password;
$ldapbind = ldap_bind($ds, $username, $upasswd);
if ($ldapbind)
{
//print "Congratulations! $username is authenticated.";
header('Location: message.html');
}
else
{print "Access Denied!";}
}
?>
您可能应该使用
将 LDAP 协议版本设置为 3
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
在调用 ldap_bind()
.
之前
找到了这个
我组装了一个基本的网络应用程序,实际的网络应用程序本身运行良好。但是我想使用我们现有的 ldap 服务器添加用户身份验证。虽然 ldap 脚本似乎间歇性地工作,但在前几次尝试登录时会失败并显示 'access denied' 消息,然后它将进行身份验证。我 运行 脚本在没有应用程序的情况下独立存在,并且适用相同的行为。
我似乎无法在任何地方解决问题,我只能假设它发生在 ldap 端而不是 php 端。我已经包含了下面的脚本,任何帮助都会很棒。
写的时候3次认证失败,2次通过...
<?php
$user = $_POST['login-name'];
$password = $_POST['login-pass'];
$ldap_user = 'uid='.$user.',ou=people,dc=ourdomain,dc=com,dc=au';
$ldap_pwd = $password;
$ldaphost = 'ldap://ldapserver.domain.com';
$ldapport = 389;
$ds = ldap_connect($ldaphost, $ldapport)
or die("Could not connect to $ldaphost");
if ($ds)
{
$username = $ldap_user;
$upasswd = $password;
$ldapbind = ldap_bind($ds, $username, $upasswd);
if ($ldapbind)
{
//print "Congratulations! $username is authenticated.";
header('Location: message.html');
}
else
{print "Access Denied!";}
}
?>
您可能应该使用
将 LDAP 协议版本设置为 3ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
在调用 ldap_bind()
.