在我工作的地方,我们使用匿名目录访问,因为某些 smtp 服务器需要它。我不知道具体情况。对于我正在处理的项目,我想使用活动目录登录。我遇到的问题,我无法检查 ldap == true 因为它/总是/等于 true。此外,我正在完成整个登录并在没有 javascript 的情况下在一页上显示内容。
这是我所做的:
$adServer = 'ipaddress';
$ldapconn = ldap_connect($adServer)
or $this->msg = "Could not connect to LDAP server.";
//Begin magic to compensate for anonymous directory access while still locking out anonymous users
if($_POST["password"] == null)
{
$password = "invalid";
}
else $password = $_POST["password"];
$ldaprdn = "domain\\" . $_POST["username"];
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $password);
if($ldapbind) {
$loggedin = true;
}
elseif(isset($_POST["password"]) && !$_POST["password"] == null) {
$msg = "Incorrect username or password";
$loggedin = false;
}
else {$loggedin = false;}
基本上是用假密码硬编码,然后等待登录表单传入真实密码。该系统有效,但我想知道是否有更清洁/更简单/更快的方法来做到这一点。