IDirectorySearchを使用した参照追跡

参照は、クエリによって要求されたオブジェクトに関する十分なデータがディレクトリサーバーにない場合に、クライアントを別のサーバーに転送するためにディレクトリサーバーが使用するメカニズムです。

1レベル検索またはサブツリー検索では、既知の直下のドメイン、スキーマ、または構成コンテナーに対してのみ参照が返されます。つまり、直接の子孫である子ドメインです。 詳細については、 検索スコープ を参照してください。

ディレクトリでは、すべてのデータが1台のサーバーで利用できるわけではなく、ネットワーク上の複数の異なるサーバーに分散されます。 他のサーバーが提供できるデータをサーバーが共有している場合は、要求されたクエリを元のサーバーで解決できないときに、クライアントに参照を提供できます。 たとえば、クライアントがユーザーオブジェクト (U) のクエリを実行するようにサーバーAに要求した場合、Aは、UがAに存在せず、Bに存在することが識別された場合に、クライアントがサーバーBで検索を続行するように提案できます。クライアントは、参照を続行するかどうかを選択できます。 参照によって、クライアントは各サーバーの機能に関する以前の知識を持つ必要がなくなりますが、クライアントは、サーバーが実行する参照の種類を指定する必要があります。

参照の追跡を有効または無効にするには、ADSTYPE_INTEGER値を使用してADS_SEARCHPREF_CHASE_REFERRALS検索オプションを設定します。この値には、IDirectorySearch::SetSearchPreferenceメソッドに渡されるADS_SEARCHPREF_INFO配列内のADS_CHASE_REFERRALS_ENUM列挙値のいずれかが含まれます。

次のコード例は、追跡の参照を有効にする方法を示しています。

ADS_SEARCHPREF_INFO SearchPref;
SearchPref.dwSearchPref = ADS_SEARCHPREF_CHASE_REFERRALS;
SearchPref.vValue.dwType = ADSTYPE_INTEGER;
SearchPref.vValue.Integer = ADS_CHASE_REFERRALS_ALWAYS;

Active Directoryでの参照の詳細については、 参照を参照してください。