2010-12-01 71 views
3

有人可以解释ldap字符串部分的组成。解释了ldap字符串的部分“LDAP:// DC = amrs,DC = win,DC = ml,dc = COM”

一个我是:

string strSQL = "SELECT mail FROM 'LDAP://DC=amrs,DC=win,DC=ml,dc=COM' WHERE samaccountname = '" + UserName.Replace(@"AMRS\", "") + "'"; 

这得到一个电子邮件为特定的用户名。现在我需要从ldap查询中获取其他信息,但无法获得正确的设置,而且我也不知道ldap设置中的值是什么。 “LDAP:// DC = amrs,DC = win,DC = ml,dc = COM”

任何人都可以向我解释这个吗?

+0

我不知道这是否有助于链接到Richard Mueller的文章http://www.petri.co.il/ldap_search_samples_for_windows_2003_and_exchange.htm – johnny 2010-12-01 15:18:49

回答

16

LDAP字符串中的DC=前缀代表域组件(dc)。这些是组成LDAP服务器域的部分。这些是固定的,需要用于该服务器上的任何对象。

在“DNS风格”,这将是:(something).amrs.win.ml.com(如服务器名,计算机名等)

理查德·穆勒有一个great post解释LDAP绑定字符串中最常见的前缀 - 这样的东西dc=ou=(组织单位)或cn=(通用名称)。

+3

+1。 – 2012-06-01 19:11:18

0

这取决于您的特定LDAP模式。试试像JXplorer这样的LDAP浏览器来了解Schema的结构。这对尝试这样的查询也很好。

DC是域组件的缩写。 LDAP:URL描述了特定服务器上的子树。您的where子句查询该匹配的属性samaccountname的条目。

0

您只需向LDAP服务器发出查询。像其他任何东西一样,它有它自己的查询格式。我不会称之为语言,但它肯定必须格式正确。您需要找到关于LDAP的基本教程以及可以在LDAP目录中查找的组件,例如Windows。您还可以看看项目是这样的:

Active Directory LDAP Query by sAMAccountName and Domain

,看看如何做事和学习的榜样。对我来说,它有点像正则表达式,尽管不是很接近晦涩难懂,如果我需要某些东西,每次都必须查看它,但至少我可以在看到它时识别部件,例如在DC上,我可能有dc = mydomain, DC =组织。我知道通过查看这是我开始查询的最高级别。从那里我必须查看它。