Active Directory搜索过滤器示例

时间:2015-02-17 15:56:06

标签: search active-directory ldap openldap

我找不到意义,这两个搜索过滤器的例子之间的区别

(&(objectClass=user)(sn=*)(bysUserName=*)(|(bysUserName={0})(cn={0})))

(&(|(bysUserName={0})(cn={0}))(objectClass=User))

任何人都可以帮我弄清楚这两个过滤器吗?感谢

1 个答案:

答案 0 :(得分:1)

如果你重新排序它们,我猜你会看到差异:

(&(objectClass=user)(sn=*)(bysUserName=*)(|(bysUserName={0})(cn={0})))

(&(objectClass=User)                     (|(bysUserName={0})(cn={0})))

第一个对sn附加限制(必须包含某些值)和bysUserName(同样的事情 - 必须包含某些值)在第二个过滤器中不存在。

基本上,&定义 AND 条件,而| OR 运算符 - 因此第一个过滤器需要您的LDAP对象满足:

  • (1)objectClass必须为user
  • AND (2)sn必须包含某些内容(不能为空)
  • AND (3)bysUserName必须包含
  • AND (4)bysUserNamecn必须与替换{0}占位符
  • 的值匹配

第二个过滤器只需要点(1)和(4)