Active Directory 搜索过滤器示例

Active Directory search filter example

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

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

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

谁能帮我弄清楚这两个过滤器?谢谢

如果您稍微重新排序,我想您会看到不同之处:

(&(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 必须包含 something
  • AND (4) bysUserNamecn 必须匹配替换 {0} 占位符
  • 的值

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