DirectoryEntry 对象

System.DirectoryServices 中,目录中的每个对象都由 DirectoryEntry 对象表示。DirectoryEntry 在内存中创建一个项对象;在调用 CommitChanges 方法之前,它实际上并没有在目录中创建该对象。这样做的好处在于,您可以从客户端应用程序检索用于访问的目录信息,并且在本地读取或修改这些信息,然后重新连接到服务器,以便将修改后的信息保存到该目录。这会使服务器的执行效率达到最高。

每个网络资源都表示为目录中的一个对象,并且每个目录对象(如前所述)都表示为客户端应用程序中的 DirectoryEntry

目录项对象具有下列特征:

  • Name。此对象名称也称作相对可分辨名称 (RDN)。RDN 的格式采用语法 key=value。例如,在下图中,用户对象的 RDN 是 CN=Jeff Smith。请注意,空格不包括在内。
  • Parent。网络对象是分层的,并且除位于层次结构顶部的根对象(它是域对象,有时称作域头)之外都具有父对象。
  • Path。目录对象路径也称作可分辨名称 (DN)。可分辨名称由对象名称以及置于该名称前面的其各级父对象直至根对象的名称组成。例如,对于用户对象 CN=Jeff Smith,DN 以根对象开头,后面跟指向该用户对象的路径,如下所示:DC=Fabrikam,DC=COM,OU=Sales,CN=Jeff Smith。路径使用 LDAP 规范定义的语法。有关该路径的正确语法的详细信息,请参阅绑定字符串。该路径用于由 DirectoryEntry 对象创建的绑定字符串中。

对象路径模型

尽管前面的信息适用于使用 System.DirectoryServices 连接到的任何 LDAP 目录对象,但还有一些针对 Active Directory 域服务的事项需要予以注意。Active Directory 域服务对象的一个特性是,它们必须包含全局唯一标识符 (GUID)。尽管可以修改该对象的不同属性值,但 GUID 是不可变的。

下面的代码示例说明如何创建 DirectoryEntry 并编写其路径、名称和 GUID。在此示例中,DirectoryEntry 绑定到此用户当前连接到的域的根。

Imports System.DirectoryServices
'...
Dim entry As New DirectoryEntry()
Console.WriteLine(entry.Path)
Console.WriteLine(entry.Name)
Console.WriteLine(entry.Guid)
using System.DirectoryServices;
//...
DirectoryEntry entry = new DirectoryEntry();
Console.WriteLine(entry.Path);
Console.WriteLine(entry.Name);
Console.WriteLine(entry.Guid);

另请参见

参考

System.DirectoryServices
DirectoryEntry

概念

System.DirectoryServices 入门
绑定字符串

Send comments about this topic to Microsoft.

版权所有 (C) 2007 Microsoft Corporation。保留所有权利。