2

LDAP を使用して AD-PHP を調査する必要がありますが、毎回成功するとは限りません。

sAMAccountName でフィルタリングしています。単純な名前 (例:プリンター) のユーザーを使用するとすべて問題ありませんが、名前が単純でない場合 (例: paulo.neves) は機能しません。

何か案は?

    $usuario = "パウロ.ネベス";

    $base_dn = "ou=管理者, dc=tiisa, dc=com, dc=br";

    $filter = "(&(objectClass=user)(objectCategory=person)(cn=*)(samaccountname=$usuario))";

    if (!($search=@ldap_search($connect, $base_dn, $filter))) {
    die("LDAP サーバーを検索できません");
    }

4

2 に答える 2

0

私はそれを.逃れなければならないことに賭けても構わないと思っています。

于 2012-08-03T17:52:40.803 に答える
0

属性値はRFC4511で定義されています。属性値で使用されるオクテットは、問題の属性タイプの構文によって定義されます。の構文でsamAccountName、ドット ( .) 文字をエスケープする必要なしに使用できる場合は、エスケープする必要はありません。

母国語でエスケープする文字が必要になる可能性は常にあります。

  • コマンド ライン ツールを使用ldapsearchして、値にドットが含まれるエントリをcnディレクトリから取得できることを確認します。

  • \2e「 」の代わりに「 」を使用して属性値のドットをエスケープし、.どうなるか見てみましょう。

  • おそらく問題とは関係ありませんが、すべてのエントリに属性がある場合、検索フィルターでcn現在のフィルター コンポーネントを使用する必要はありません。cn=*

こちらもご覧ください

于 2012-08-03T21:39:33.063 に答える