使用 objectGUID 绑定到对象

如果重命名或移动对象,则对象可分辨名称会更改,因此可分辨名称不是可靠的对象标识符。 在 Active Directory 域服务中,对象的 objectGUID 属性永远不会更改,即使重命名或移动对象也是如此。 有关 objectGUID 和标识符的详细信息,请参阅对象名称和标识

Active Directory LDAP 提供程序提供了一种使用对象 GUID 绑定到对象的方法。 绑定字符串的格式如下所示:

LDAP://servername/<GUID=XXXXX>

在此示例中,“servername”为目录服务器的名称,而“XXXXX”则是 GUID 十六进制值的字符串表示形式。 “servername”为可选项。 GUID 字符串以“XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”格式指定。 GUID 字符串还可以采用“XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX”格式,该格式与 StringFromGUID2 函数生成的字符串的格式相同,两边没有大括号“{}”。 有关详细信息以及用于演示如何从 GUID 创建可绑定字符串的代码示例,请参阅创建 GUID 的可绑定字符串表示形式的示例代码IADs.GUID 属性可用于检索 GUID 的正确字符串形式。

使用对象 GUID 进行绑定时,不支持某些 IADsIADsContainer 方法与属性。 使用对象 GUID 绑定来获取的对象不支持以下 IADs 属性:

使用对象 GUID 绑定来获取的对象不支持以下 IADsContainer 方法:

若要在使用对象 GUID 绑定到对象后使用这些方法和属性,请使用 IADs.Get 方法检索对象可分辨名称,然后使用该可分辨名称再次绑定到此对象。

如果应用程序存储或缓存存储在 Active Directory 域服务中的对象的标识符或引用,则对象 GUID 是出于多种原因使用的最佳标识符:

  • 对象上的 objectGUID 属性永远不会更改,即使重命名或移动对象也是如此。
  • 使用对象 GUID 可轻松绑定到对象。
  • 如果重命名或移动了对象,objectGUID 属性将提供一个标识符,该标识符可用于快速查找和标识对象,而无需编写一个具有标识该对象的所有属性的条件的查询。