私が働いている場所では、smtp サーバーがそれを必要とするため、匿名のディレクトリ アクセスを使用しています。詳細はわかりません。私が取り組んでいるプロジェクトでは、Active Directory ログインを使用したいと考えていました。私が遭遇した問題、ldap == true かどうかを確認できません。/常に/true になるためです。また、ログイン全体を行い、javascript を使用せずに 1 つのページにコンテンツを表示しています。
これが私がやったことです:
$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;}
基本的に、偽のパスワードをハード コーディングし、ログイン フォームが本物のパスワードを渡すのを待ちます。このシステムは機能しますが、これを行うためのよりクリーン/簡単/高速な方法があるかどうか疑問に思っていました.