2012-08-31 86 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">