Указание области поиска
Можно указать область поиска в качестве базового, одноуровневого или поддеревого поиска. Используйте флаг ADS_SEARCHPREF_SEARCH_SCOPE со значениями перечисления ADS_SCOPEENUM, чтобы указать область поиска. В следующем списке содержатся описания типов поиска:
- База. Базовый поиск ограничивает поиск базовым объектом. Максимальное число возвращаемых объектов всегда равно одному. Этот поиск полезен для проверки существования объекта для получения членства в группах. Например, если у вас есть различающееся имя объекта, и необходимо проверить существование объекта на основе пути, можно использовать одноуровневый поиск. Если поиск завершается ошибкой, можно предположить, что объект, возможно, был переименован или перемещен в другое расположение, или вы получили неправильные сведения об объекте. Помните, что следует хранить глобальный уникальный идентификатор (GUID) объекта вместо различающегося имени, если вы хотите вернуться к объекту. GUID всегда будет ссылаться на один и тот же объект независимо от того, где находится объект в иерархии каталогов.
- Один уровень. Одноуровневый поиск ограничен непосредственными дочерними элементами базового объекта, но исключает сам базовый объект. Этот параметр может выполнять целевой поиск непосредственных дочерних объектов родительского объекта. Например, рассмотрим родительский объект P1 и его непосредственные дочерние объекты: C1, C2 и C3. Одноуровневый поиск оценивает C1, C2 и C3 по критериям поиска, но не оценивает P1. Используйте одноуровневый поиск для перечисления всех дочерних элементов объекта. Перечисление IADsContainer преобразуется в одноуровневый поиск.
- Поддерев. Поиск поддерев (или глубокий поиск) включает все дочерние объекты, а также базовый объект. Поставщик LDAP может запросить рефералы к другим службам каталогов LDAP, включая другие домены каталогов или леса.