4

我目前正在研究获取用户订阅的邮件分发列表列表。我以前从未使用过 Active Directory,在这里和 MSDN 上阅读了各种答案后,我很困惑。

我的查询设置如下:

DirectorySearcher search = new DirectorySearcher();
search.Filter = String.Format("LDAP://CN={0},OU=<value here>,DC=<value>...", userName);
search.SearchScope = SearchScope.Subtree;
search.PropertiesToLoad.Add("memberOf");
SearchResult result = search.FindOne();
if(result != null)
{
    // Do stuff here
}

以下是我的问题:

  1. DirectorySearcher 中的 SearchRoot 属性有什么作用?我是否需要进行设置才能让此查询返回一个值?
  2. 我是否需要将 SearchScope 值设置为子树是我只列出 1 个 OU 作为基本 OU 并让它搜索所有子 OU?
  3. 发送到 PropertiesToLoad.Add() 的字符串是通用的,还是需要是我公司定义的字符串?

感谢您的建议!

4

1 回答 1

1

(1) DirectorySearcher 中的 SearchRoot 属性有什么作用?我是否需要进行设置才能让此查询返回一个值?

它定义了搜索的起点;将其与文件系统进行比较 - 它定义了您开始搜索的起始目录。您将在内部查看,SearchRoot并且可能会查看其所有子容器。它只是用来减少可能的容器数量来搜索东西

(2) 我是否需要将 SearchScope 值设置为子树是我只列出 1 个 OU 作为基本 OU 并让它搜索所有子 OU?

如果您想搜索您的 OU 或其他容器SearchRoot- 那么是的,您必须搜索SearchScope.Subtree- 否则搜索将只查看您的SearchRoot容器本身(在该容器内的所有对象,如用户、计算机、组 - 但不是在子- 容器)。

(3) 发送到 PropertiesToLoad.Add() 的字符串是通用的,还是需要是我公司定义的字符串?

这些是 LDAP 属性名称——既可以是标准名称,也可以是贵公司可能已经定义和安装的自定义扩展。这是一个非常好的 Excel 表格形式的所有 AD 属性列表(实际上是几个)。

于 2013-04-09T06:00:00.090 回答