Active Directoryで認証するためにこの関数を以下に示しますが、次のような特殊文字を含む一部のパスワードを除いて、正常に機能しています。
Xefeéà&"+
常に「無効なクレデンシャル」を返します。
私はインターネットでいくつかの投稿を見ましたが、文字を正しく逃れるものはないようです。
PHPバージョン5.3.8-ZS(Zendサーバー)を使用しています
これが私のクラスコンストラクターの設定です:
ldap_set_option($this->_link, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($this->_link, LDAP_OPT_REFERRALS, 0);
そしてログイン機能:
public function login($userlogin,$userpassword){
$return=array();
$userlogin.="@".$this->_config["domaine"];
$ret=@ldap_bind($this->_link , $userlogin ,utf8_decode($userpassword));
if(!$ret){
$return[]=array("status"=>"error","message"=>"Erreur d'authentification ! <br/> Veuillez vérifier votre nom et mot de passe SVP","ldap_error"=>ldap_error($this->_link));
}
if($ret)
{
$return[]=array("status"=>"success","message"=>"Authentification réussie");
}
return json_encode($return);
}
どんな助けでも大歓迎です。