4.5.3.1. Примеры
Для примера, предположим, что на сервере, к которому происходит обращение (hosta), хранятся записи <DC=Example,DC=NET> и <CN=Manager,DC=Example,DC=NET>. Этот сервер знает, что на двух других LDAP-серверах (hostb) и (hostc) (один из них главный (master), а второй — теневая копия) хранится <OU=People,DC=Example,DC=NET>, а на LDAP-совместимом сервере (hostd) хранится поддерево <OU=Roles,DC=Example,DC=NET>. Если на сервере, к которому происходит обращение, был запрошен поиск Search по <DC=Example,DC=NET> с диапазоном wholeSubtree, он может вернуть следующее:
SearchResultEntry for DC=Example,DC=NET SearchResultEntry for CN=Manager,DC=Example,DC=NET SearchResultReference { ldap://hostb/OU=People,DC=Example,DC=NET??sub ldap://hostc/OU=People,DC=Example,DC=NET??sub } SearchResultReference { ldap://hostd/OU=Roles,DC=Example,DC=NET??sub } SearchResultDone (success)
Тем, кто занимается реализацией клиентов, следует иметь ввиду, что при следовании по ссылкам из сообщения SearchResultReference могут быть сгенерированы дополнительные сообщения SearchResultReference. В продолжение нашего примера, если клиент обращается к серверу (hostb) и выполняет запрос Search по поддереву <OU=People,DC=Example,DC=NET>, этот сервер может ответить следующим образом:
SearchResultEntry for OU=People,DC=Example,DC=NET SearchResultReference { ldap://hoste/OU=Managers,OU=People,DC=Example,DC=NET??sub } SearchResultReference { ldap://hostf/OU=Consultants,OU=People,DC=Example,DC=NET??sub } SearchResultDone (success)
Другой вариант, если на сервере, к которому происходит обращение, был запрошен поиск Search по <DC=Example,DC=NET> с диапазоном singleLevel, он может вернуть следующее:
SearchResultEntry for CN=Manager,DC=Example,DC=NET SearchResultReference { ldap://hostb/OU=People,DC=Example,DC=NET??base ldap://hostc/OU=People,DC=Example,DC=NET??base } SearchResultReference { ldap://hostd/OU=Roles,DC=Example,DC=NET??base } SearchResultDone (success)
Если на сервере, к которому происходит обращение, не содержится базовый объект поиска Search, но у него есть информация о его возможном местонахождении, то он может вернуть клиенту отсылку referral. В этом случае, если клиент запрашивает у сервера hosta поиск Search по поддереву <DC=Example,DC=ORG>, сервер возвращает сообщение SearchResultDone, содержащее отсылку:
SearchResultDone (referral) { ldap://hostg/DC=Example,DC=ORG??sub }