Active directory Lucee LDAP在搜索序列号(姓氏)时不返回结果
我有这个代码,它将返回一个正确的结果Active directory Lucee LDAP在搜索序列号(姓氏)时不返回结果,active-directory,coldfusion,Active Directory,Coldfusion,我有这个代码,它将返回一个正确的结果 <cfldap server="ad.domain.com" action="query" name="qryResults" start="DC=ad,DC=domain,DC=com" filter="mail=#form.searchterm#" username="#application.lda
<cfldap server="ad.domain.com"
action="query"
name="qryResults"
start="DC=ad,DC=domain,DC=com"
filter="mail=#form.searchterm#"
username="#application.ldapUsername#"
password="#application.ldapPassword#"
attributes="cn,sn,givenName,mail,st,l,ou,sAMAccountName"
/>
但这不会:
<cfldap server="ad.domain.com"
action="query"
name="qryResults"
start="DC=ad,DC=domain,DC=com"
filter="SN=#form.searchterm#"
username="#application.ldapUsername#"
password="#application.ldapPassword#"
attributes="cn,sn,givenName,mail,st,l,ou,sAMAccountName"
/>
我遗漏了什么以便可以通过Active Directory SN属性进行搜索
已知姓名时如何搜索Active Directory的奖励积分:
<cfldap server="ad.domain.com"
action="query"
name="qryResults"
start="DC=ad,DC=domain,DC=com"
filter="givenname=#form.givenname#;SN=#form.searchterm#"
username="#application.ldapUsername#"
password="#application.ldapPassword#"
attributes="cn,sn,givenName,mail,st,l,ou,sAMAccountName"
/>
src:
其中“|”是“或”运算符,“*”是通配符。更好的是,假设你知道这个人的名字是“吉姆·史密斯”。您可以使用过滤器:
(anr=吉姆·史密斯)
现在,Active Directory将搜索任何命名属性与“Jim Smith*”匹配的对象,再加上(givenName=Jim*)和(sn=Smith*)匹配的对象,再加上(givenName=Smith*)和(sn=Jim*)匹配的对象。当将字符串拆分为两个值时,该算法只考虑字符串中的第一个空格。例如,过滤器:
(anr=吉姆·史密斯·威廉姆斯)
这将查询任何命名属性与“Jim Smith Williams*”匹配的对象,以及其中(givenName=Jim*)和(sn=Smith Williams*)或其中(givenName=Smith Williams*)和(sn=Jim*)的对象
当应用anr
语法时,它完全满足我的需要,并且我不必对用户数据进行任何奇特的解析(例如,在名称中的空格上循环,搜索@符号等)
更新:
模糊名称解析(ANR)是Active Directory中的一种高效搜索算法,允许您在单个子句中指定涉及多个命名相关属性的复杂筛选器。当您知道某个对象的名称,但不一定知道哪个命名属性包含该信息时,可以使用它来定位Active Directory中的对象。虽然ANR通常用于定位用户对象,但它可以用于查找Active Directory中的任何对象类。
资料来源:src:
其中“|”是“或”运算符,“*”是通配符。更好的是,假设你知道这个人的名字是“吉姆·史密斯”。您可以使用过滤器:
(anr=吉姆·史密斯)
现在,Active Directory将搜索任何命名属性与“Jim Smith*”匹配的对象,再加上(givenName=Jim*)和(sn=Smith*)匹配的对象,再加上(givenName=Smith*)和(sn=Jim*)匹配的对象。当将字符串拆分为两个值时,该算法只考虑字符串中的第一个空格。例如,过滤器:
(anr=吉姆·史密斯·威廉姆斯)
这将查询任何命名属性与“Jim Smith Williams*”匹配的对象,以及其中(givenName=Jim*)和(sn=Smith Williams*)或其中(givenName=Smith Williams*)和(sn=Jim*)的对象
当应用anr
语法时,它完全满足我的需要,并且我不必对用户数据进行任何奇特的解析(例如,在名称中的空格上循环,搜索@符号等)
更新:
模糊名称解析(ANR)是Active Directory中的一种高效搜索算法,允许您在单个子句中指定涉及多个命名相关属性的复杂筛选器。当您知道某个对象的名称,但不一定知道哪个命名属性包含该信息时,可以使用它来定位Active Directory中的对象。虽然ANR通常用于定位用户对象,但它可以用于查找Active Directory中的任何对象类。
来源:对于多个术语,请将它们括在括号中,并使用and
&
或|
运算符。尝试类似于(&(givenName=John)(sn=Smith))
或搜索常用名称(名字和姓氏),(cn=John-Smith)
。See也工作得很漂亮。从中作出回答,我可以接受。另外,非常好的资源链接,感谢您将其包括在内。对于多个术语,请将它们用括号括起来,并使用and&
或|
运算符。尝试类似于(&(givenName=John)(sn=Smith))
或搜索常用名称(名字和姓氏),(cn=John-Smith)
。See也工作得很漂亮。从中作出回答,我可以接受。还有,很好的资源链接,谢谢你的加入。很好。知道通配符,但从来没有听说过anr(好的,我能帮助别人改变!更新了答案,增加了一点背景。很好。知道通配符,但从来没有听说过anr(好的,我能帮助别人改变!更新了答案,增加了一点上下文。