3

有人可以解释一下 ldap 字符串部分的构成吗?

我有一个是:

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"

谁能给我解释一下?

4

3 回答 3

16

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

在“DNS 样式”中,这将显示为:( (something).amrs.win.ml.com 例如服务器名称、机器名称等)

Richard Mueller 有一篇很棒的文章,解释了 LDAP 绑定字符串中最常见的前缀 - 诸如dc=, ou=(组织单位)或cn=(通用名称)之类的东西。

于 2010-12-01T15:16:17.093 回答
0

这取决于您的特定 LDAP 模式。尝试使用 JXplorer 之类的 LDAP 浏览器来了解 Schema 的结构。它也非常适合尝试这样的查询。

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

于 2010-12-01T15:19:40.357 回答
0

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

sAMAccountName 和域的 Active Directory LDAP 查询

看看事情是如何完成的,并通过例子来学习。对我来说,它有点像正则表达式,虽然没有那么神秘,如果我需要一些东西,我每次都必须查找它,但至少当我看到它时我可以识别部分,比如在 DC 上,我可能有 dc=mydomain,直流=组织。我通过查看知道这是我开始查询的最高级别。从那里我必须查一下。

于 2010-12-01T15:27:31.200 回答