用于子字符串的LDAP过滤器?逃避连字符和parens?

时间:2012-03-22 16:27:07

标签: ldap

我正在从LDAP进行查找,我需要根据寻呼机号码进行搜索。我们的寻呼机号码可以包含连字符或空格或括号。我试图在我的寻呼机字段中找出我需要的搜索过滤器,假设我的用户可能知道或者可能不知道LDAP字段中的parens或连字符在哪里。

我正在尝试编写一个与最后五位数匹配的过滤器。

示例(单引号不存储在LDAP中,我在这里使用它们作为分隔符):

'127 13098'
'125 or (44)8-9622'
'126 (12349)'

这些都是LDAP中我们的寻呼机字段中的可能值。

这是我到目前为止所拥有的:

(&(objectCategory = person)(objectclass = user)(sn = *)(givenname = *)(pager = *“+ Pager.Trim()+”))“

这适用于第一个示例,但如果用户只输入数字,则不会得到中间示例。

是否可以编写一个过滤器来查找所有三种情况的五位数组合,或者我是否需要进行多次搜索?

1 个答案:

答案 0 :(得分:0)

我不太确定我是否遵循这些值,但是,您可以将OR过滤器组合在一起:

(&(objectCategory=person)(objectClass=user)(|(pager=*127 13098*)(pager=125)(pager=126)...))

除非过滤掉某些特定数据,否则不应该使用sn和givenName过滤器。我确保您的寻呼机属性已编入索引并且在AD中有一个元组索引。