2013-05-16 41 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