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)
bysUserName
或 cn
必须匹配替换 {0}
占位符 的值
第二个过滤器只需要点 (1) 和 (4)
我找不到意思,搜索过滤器的这两个例子的区别
(&(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)
bysUserName
或cn
必须匹配替换{0}
占位符 的值
第二个过滤器只需要点 (1) 和 (4)