Относительно поискового запроса LDAP - PullRequest
0 голосов
/ 14 декабря 2011

Давайте предположим, что я хочу найти число, скажем 123, а в LDAP есть записи типа 123# или 1-2-3.Каким должен быть фильтр поиска LDAP, который необходимо предоставить?Я пробовал *123*, но это не работает в случае 1-2-3.

1 Ответ

3 голосов
/ 14 декабря 2011

LDAP не имеет «записей, подобных 123 #», он имеет записи, идентифицируемые отличительными именами, которые содержат атрибуты. Для поиска записи, содержащей значение, необходимо указать следующие параметры для поискового запроса:

  • базовый объект (отличительное имя, с которого должен начинаться поиск)
  • scope - базовый уровень, подчиненный базовому уровню или поддереву (все записи подчинены базовому объекту
  • фильтр - утверждение, которое должно принимать значение true, чтобы запись была возвращена клиенту
  • атрибуты для возврата - список атрибутов, которые желает клиент LDAP

Если рассматриваемый атрибут называется number и имеет синтаксис Integer и соответствующее правило IntegerMatch, тогда фильтр (number=123) найдет атрибут с именем number с целочисленным значением 123. Какой фильтр использовать, зависит от синтаксиса и правила сопоставления в определении типа атрибута, поскольку сервер каталогов выполняет задачу сопоставления значений атрибута с предоставленными фильтрами с правилами сопоставления (как, впрочем, и приложения). Программисты не должны рассматривать значения атрибутов LDAP как «строки», вместо этого они должны понимать синтаксис атрибутов и правила сопоставления. Существует синтаксис DirectoryString (с очень конкретным определением, хотя для многих целей его можно считать строкой садового сорта), но не все атрибуты определены с синтаксисом DirectoryString. Также не все атрибуты используют одинаковые правила сопоставления и правила упорядочения.

см. Также

...