Строго меньше оператора в фильтре поиска LDAP? - PullRequest
11 голосов
/ 16 февраля 2012

Во всех ссылках на оператор фильтра поиска LDAP я нахожу <= для "меньше или равно" и >= для "больше или равно".

Неужели нет оператора "строго меньше чем"? Должен ли я написать attribute < threshold как следующее? (Порог является фиксированным значением.)

(&(attribute <= threshold)(!(attribute = threshold))) 

В моем текущем случае значения атрибута представляют собой целые числа, которые представляют даты, например, 20120217161853 за 2012-02-17 16: 18: 53.

Ответы [ 3 ]

14 голосов
/ 25 февраля 2012

Еще один простой обходной путь - инвертировать условие.Если вам нужно

(attribute < threshold)

, то это также можно записать как

!(attribute >= threshold)
4 голосов
/ 16 февраля 2012

Обратитесь к RFC4511 за определениями типов поисковых фильтров. Типы фильтров:

  • равенствоMatch AttributeValueAssertion,
  • подстроки SubstringFilter
  • большее значение или значение AttributeValueAssertion
  • lessOrEqual AttributeValueAssertion
  • настоящее описание атрибута
  • окМатч AttributeValueAssertion
  • extensibleMatch MatchingRuleAssertion

Мало того, что нет фильтра '<', относительные значения в <code>>= и <= определяются правилами упорядочения, и поэтому сравнение относительных значений может не соответствовать ожидаемому, если treshold не имеет 1.3.6.1.4.1.1466.115.121.1.27 синтаксис и имеет integerOrderingMatch правило упорядочения.

3 голосов
/ 16 февраля 2012

Не уверен, что действительно понял.Если вы хотите что-то вроде X<100, почему бы вам не набрать X<=99.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...