LDAP搜索多个字段,如if / else-statement

时间:2014-12-01 13:13:57

标签: filter attributes ldap

我有一个关于LDAP搜索的问题,我有三个属性,我想参与我的过滤器。 我希望过滤器总是搜索objectClass,如果属性skaPersonType有值,则查找,否则查找employeeType。 我已经陷入困境,现在真的不知道如何继续。

最好的问候/ C

2 个答案:

答案 0 :(得分:2)

  
      
  1. 始终搜索objectclass
  2.   

不必要,但(objectClass=*):所有LDAP条目都有objectClass.

  
      
  1. 如果符合skaPerson = EMP,请查找该值
  2.   

(skaPerson=EMP)

  
      
  1. ELSE寻找employeetype =外部
  2.   

(employeetype=External)

  

我有什么想法可以管理它?

您正在寻找(2)(3)。所以:

(|(skaPerson=EMP)(employeetype=External))

如果您必须进行多余的objectClass测试:

(&(objectClass=*)(|(skaPerson=EMP)(employeetype=External)))

答案 1 :(得分:1)

不确定您真正想要的过滤器:

  

...如果属性skaPersonType有一个,则始终搜索objectClass   值,寻找,否则寻找employeeType ......

你在找这样的东西吗?

(&(objectClass=MyClass)(|(skaPersonType=A)(&(!(skaPersonType=*))(employeeType=B))))

上面的过滤器将获得以下对象:

  1. objectClass等于MyClass,AND
  2. 满足以下条件之一
    • skaPersonType等于A,OR
    • skaPersonType没有值,employeeType等于B
  3. 代码未经过测试。