2013-05-16 38 views
1

我们有我们用户的一个子集所属的OU组列表。一些用户属于多个OU组。Coldfusion cfldap:列出AD OU组列表的所有成员

是否可以使用cfldap返回属于这个OU组列表中的一个或多个的所有用户?事情是这样的:

<cfldap 
    name="user_info" 
    action="QUERY" 
    server="123.45.6.78" 
    attributes="displayName, givenName, memberOf" 
    start="dc=na,dc=company,dc=lan" 
    scope="subtree" 
    filter="(|(memberOf CONTAINS ou=OU001)(memberOf CONTAINS ou=OU002)(memberOf CONTAINS ou=OU003))" 
    username="#userName#" 
    password="#passWord#"> 

回答

2

你应该能够设置过滤器这样

filter = "(|(memberOf=*ou=OU001*)(memberOf=*ou=OU002*)(memberOf*ou=OU003*))" 

|表示您正在使用您的列表中OR*应作为通配符行动

此外,当您使用具有大量属性的标签时,只是一个建议,我发现使用attributeCollection来定义我要传入标签的内容会更容易。这是个人偏好的可读性,对性能没有影响。

<cfset stldap = {}> 
<cfset stldap.name = "user_info"> 
<cfset stldap.action = "QUERY"> 
<cfset stldap.server = "123.45.6.78"> 
<cfset stldap.attributes = "displayName, givenName, memberOf"> 
<cfset stldap.start = "dc=na,dc=company,dc=lan"> 
<cfset stldap.scope = "subtree"> 
<cfset stldap.filter = "(|(memberOf=*ou=OU001*)(memberOf=*ou=OU002*)(memberOf*ou=OU003*))"> 
<cfset stldap.username = userName> 
<cfset stldap.password = passWord> 

<cfldap attributeCollection="#stldap#"> 
+0

使用'attributeCollection' – MadushM