Active Directory LDAP Query by sAMAccountName and Domain
sAMAccountNameとDomainによるLDAPストアのクエリはどのように行うのですか? Active DirectoryやLDAP用語では、"domain"プロパティはどのような名前ですか?
今のところ、フィルターはこんな感じです。ドメインを追加できるようにしたいのですが。
(&(objectCategory=Person)(sAMAccountName=BTYNDALL))
21
3
"Domain"は、LDAPオブジェクトのプロパティではありません。むしろ、そのオブジェクトが格納されているデータベースの名前のようなものです。
つまり、そのデータベースで検索を行うためには、適切なデータベースに接続する必要があります(LDAP用語では、"bind to the domain/directory server")。
バインドに成功すれば、現在の形のクエリがすべて揃うことになります。
ところで、
"ObjectCategory=Person"
を"ObjectClass=user"
ではなく"ObjectCategory=Person"
にしたのは良い判断だったと思います。ADでは、前者は"indexed property"であり、優れたパフォーマンスを発揮しますが、後者はindexedではなく、若干遅くなります。検索はドメイン内で行う必要があります。
http://msdn.microsoft.com/en-us/library/ms677934(VS.85).aspxを参照してください。
つまり、基本的には、ドメイン内を検索するためには、そのドメインにバインドする必要があります。
.NETをお使いの方は、DirectorySearcherクラスをお使いください。コンストラクタには、ドメインを文字列で渡すことができます。