通过ColdFusion连接到LDAP

通过ColdFusion连接到LDAP,coldfusion,active-directory,Coldfusion,Active Directory,我试图通过ColdFusion获得与LDAP的以下连接,但是,我无法让它返回任何值(即results.recordcount始终等于0)。我假设我的问题在于查询的“开始”部分,所以我做了一些研究,尝试了许多值,但似乎没有任何效果 <cfldap server = "adserver" action = "query" username = "DOMAIN\username" password = "apassword" name = "results"

我试图通过ColdFusion获得与LDAP的以下连接,但是,我无法让它返回任何值(即results.recordcount始终等于0)。我假设我的问题在于查询的“开始”部分,所以我做了一些研究,尝试了许多值,但似乎没有任何效果

<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>
如果我右键单击“User”并查看属性,它会告诉我它的规范名称是domain.local/NAME1/NAME2/Users,我认为这与我的问题有关

有什么想法我应该用在cfldap的“开始”部分吗


提前感谢。

我强烈建议您使用Softerra的LDAP浏览器之类的程序浏览您的广告(http://www.ldapbrowser.com/)然后定位要开始搜索的层次结构的可分辨名称。使用此功能,我能够找到目标LDAP结构的确切DN。

我强烈建议使用Softerra的LDAP浏览器之类的程序浏览您的广告(http://www.ldapbrowser.com/)然后定位要开始搜索的层次结构的可分辨名称。通过使用它,我能够找到目标LDAP结构的确切DN。

试试这样的方法。我最幸运的是从高级别开始,然后使用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">

试试这样的方法。我最幸运的是从高级别开始,然后使用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">


谢谢你,本。我已经按照你的建议做了,我想去的结构是ServerName->DC=name->OU=name2->OU=name3->OU->Users。因此,我将cfldap start属性更新为“start=”DC=name,OU=name2,OU=name3,OU=Users”,但这会生成以下错误:尝试执行查询时发生错误:[LDAP:错误代码1-000020D6:SvcErr:DSID-031006CC,问题5012(DIR\u错误),数据0]。有什么想法吗?如果我将start设置为just DC=name,那么错误就会消失,但我又回到了零结果的问题。我以前只实现过一次cfldap,使用LDAP浏览器是一个巨大的帮助。如果你不能使用它进行连接,那么你使用的命名约定就不正确(我花了很长时间才弄清楚)我通常只在开始路径出现问题时才会出现目录错误。我通常从LDAP浏览器的右键单击上下文菜单复制并粘贴它,这很好。在我得到标记之前,确实需要一些尝试和错误。使用Ben的建议,上面显示的开始路径需要与我认为的相反be.也就是说,ldapbroswer的上下文菜单显示我实际上需要自下而上工作(例如,OU=Users,OU=group,DC=domain,OU=Users),而不是自上而下工作(例如,OU=Users,OU=group,DC=domain,DC=local)。这可能是我从来没有想过尝试过的。谢谢你的帮助。谢谢Ben。我已经按照你的建议做了,我想去的结构是ServerName->DC=name->OU=name2->OU=name3->OU->Users。因此,我将我的cfldap开始属性更新为“start=”DC=name,OU=name2,OU=name3,OU=Users”但这会生成以下错误:尝试执行查询时出错:[LDAP:错误代码1-000020D6:SvcErr:DSID-031006CC,问题5012(DIR_错误),数据0]。有什么想法吗?如果我将start设置为just DC=name,那么错误就会消失,但我又回到了零结果的问题。我以前只实现过一次cfldap,使用LDAP浏览器是一个巨大的帮助。如果您不能使用它进行连接,那么您使用的命名约定不正确(我花了很长时间才弄清楚),我通常只在开始路径出现问题时才会收到目录错误。我通常从LDAP浏览器的右键单击上下文菜单复制并粘贴它,这很好。这确实需要一些尝试和错误,直到我得到了快乐的标签。使用本的建议,上面显示的开始路径需要与我所认为的相反。也就是说,ldapbroswer的上下文菜单显示我实际上需要自下而上工作(例如,OU=Users,OU=group,DC=domain,OU=Users),而不是自上而下工作(例如,OU=local,OU=group,DC=domain,DC=local)。这可能是我从未想过要尝试的,所以谢谢你的帮助。