3

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);
}

どんな助けでも大歓迎です。

4

3 に答える 3

4

html_entity_decodeutf8_decode の代わりにパスワードを試してください。それは私のために働いた唯一のものでした。

于 2012-11-05T09:27:16.090 に答える