2012-08-31 117 views
0

我想通過ColdFusion獲得以下連接到我們的LDAP工作,但是,我永遠無法讓它返回任何值(即results.recordcount總是等於0)。我假設我的問題是與查詢的「開始」部分,所以我做了一些研究,並嘗試了很多值,但似乎沒有任何工作。通過ColdFusion連接到LDAP

<cfldap 
    server = "adserver" 
    action = "query" 
    username = "DOMAIN\username" 
    password = "apassword" 
    name = "results" 
    scope="subtree" 
    start = "dc=domain.local" 
    attributes = "givenname,surname,uid,userid,groupMembership,mail,dn,roles,memberof,cn,samaccountName"> 

<cfoutput> 
    #results.recordcount# 
</cfoutput> 

,我試圖訪問該廣告的結構如下。我試圖到達顯示樹底部的「用戶」部分。

Active Directory Users and Computers 
- Saved queries 
- domain.local 
    - option1 
    - option2 
    - NAME1 
    - option1 
    - option2 
    - NAME2 
     - Computers 
     - Disabled Users 
     - Groups 
     - Users 

如果我的「用戶」右鍵點擊並查看它告訴我它的規範名稱是domain.local/NAME1/NAME2 /用戶的屬性,我以爲是有關我的問題。

任何想法,我應該用於cfldap的「開始」部分?

在此先感謝。

回答

4

我強烈建議您使用Softerra的LDAP瀏覽器(http://www.ldapbrowser.com/)等程序瀏覽您的AD,然後找到要開始搜索的層次結構的專有名稱。使用這個,我能夠找到目標LDAP結構的確切DN。

+0

謝謝本。我按照你的建議完成了,我想要去的結構是ServerName-> DC = name-> OU = name2-> OU = name3-> OU-> Users。因此,我將cfldap start屬性更新爲「start =」DC = name,OU = name2,OU = name3,OU = Users「,但這會生成以下錯誤:嘗試執行查詢時發生錯誤:[LDAP:error代碼1 - 000020D6:SvcErr:DSID-031006CC,問題5012(DIR_ERROR),數據0]。任何想法? – jj2

+0

如果我將start設置爲DC = name,那麼錯誤消失,但我恢復爲獲得零結果的問題。 – jj2

+0

我以前只實現了一次cfldap,並且使用LDAP瀏覽器是一個巨大的幫助,如果你不能使用它連接,那麼你使用的命名規則不正確(我花了很長時間才弄明白) –

1

嘗試像這樣的事情。我從最高層次開始運氣最好,然後使用filter屬性進行深入分析。

<cfldap action="query" start="DC=server, DC=domain, DC=com" filter="OU=Users" 
username = "DOMAIN\username" password = "apassword" name = "results" 
scope="subtree" attributes = "givenname,surname,uid,userid,groupMembership,mail,dn,roles,memberof,cn,samaccountName">