如何搜索在ldap中串联在一起的2个属性(名字和姓氏)?

时间:2018-11-01 03:00:57

标签: ruby active-directory ldap

我使用的LDAP Active Directory分别存储名字和姓氏,并且还具有用于存储首选名称的首选名称。

说我们有两个同名的人:Atom Electron

两个都有

firstname=Atom

lastname=Electron

但是他们每个人都设置了不同的首选名称:

preferedname=Atomic Electron(user_id = 12)

preferedname=Atom Electron(user_id = 13)

我当前的LDAP过滤器:

q = "query string"
  filter_preferredname_match_q = q.split(' ').map { |w| Net::LDAP::Filter.eq('preferredname', "*#{w}*") }.inject(:&)
  filter_firstname_match_q = q.split(' ').map { |w| Net::LDAP::Filter.eq('firstname', "*#{w}*") }.inject(:&)
  filter_lastname_match_q = q.split(' ').map { |w| Net::LDAP::Filter.eq('lastname', "*#{w}*") }.inject(:&)
  filter = filter_emplid_present & (
    filter_preferredname_match_q |
    filter_firstname_match_q |
    filter_lastname_match_q
  )

但这不能正常工作:如果用户搜索Atomic Electron,它将仅显示一个结果,但我希望它同时显示用户12和13

如何让ldap在LDAP Active Directory数据库中首先连接名字和姓氏,然后让我查询结果字符串?

谢谢!

0 个答案:

没有答案