Поиск рекомендаций с помощью IDirectorySearch
Реферал — это механизм, который сервер каталогов использует для направления клиента на другой сервер, если он не содержит достаточных данных об объекте, запрошенном запросом.
В одноуровневом или поддеревом поиске рефералы возвращаются только для известных, немедленно подчиненных доменов, схем или контейнеров конфигурации; то есть дочерние домены, которые являются прямыми потомками. Дополнительные сведения см. в разделе "Область поиска".
В каталоге не все данные доступны на одном сервере, а распределяются по нескольким разным серверам в сети. Если серверы предоставляют данные, которые могут предоставлять другие серверы, они могут предоставлять ссылки клиенту, когда запрошенный запрос не может быть разрешен на исходном сервере. Например, когда клиент запрашивает сервер A запрашивать объект пользователя (U), клиент может предложить клиенту продолжить поиск на сервере B, если U не находится на A, но определяется, что он находится в B. Клиент имеет выбор, чтобы продолжить реферал или нет. Рефералы освобождают клиента от необходимости обладать предыдущими знаниями о возможностях каждого сервера, но клиент должен указать тип рефералов, которые должен выполнять сервер.
Чтобы включить или отключить поиск ссылок, задайте параметр поиска ADS_SEARCHPREF_CHASE_REFERRALS со значением ADSTYPE_INTEGER, содержащим одно из значений перечисления ADS_CHASE_REFERRALS_ENUM в массиве ADS_SEARCHPREF_INFO, переданном методу IDirectorySearch::SetSearchPreference.
В следующем примере кода показано, как включить рекомендации по отслеживанию.
ADS_SEARCHPREF_INFO SearchPref;
SearchPref.dwSearchPref = ADS_SEARCHPREF_CHASE_REFERRALS;
SearchPref.vValue.dwType = ADSTYPE_INTEGER;
SearchPref.vValue.Integer = ADS_CHASE_REFERRALS_ALWAYS;
Дополнительные сведения о рефералах в Active Directory см. в разделе "Ссылки".