启用与其他WellKnownObjects 属性Rename-Safe绑定

Container 类的对象具有 其他WellKnownObjects 属性,可用于将 GUID 与容器中子对象的可分辨名称 (DN) 相关联。 如果移动或重命名子对象,Active Directory 服务器将更新该子对象的 otherWellKnownObjects 值中的 DN。 这使 WKGUID 绑定功能能够使用 GUID 和容器的 DN(而不是子对象的 DN)绑定到子对象。

otherWellKnownObjects 属性等效于 wellKnownObjects 属性,但应用程序和服务可以编写 otherWellKnownObjects 值,但只有系统可以编写 wellKnownObjects

在以下情况下,使用 otherWellKnownObjects 属性和 WKGUID 绑定对特定容器对象需要重命名安全绑定非常有用。

如果容器对象包含其他重要对象,或者可以重命名或移动重要对象。

如果容器对象的每个实例都存在重要对象。 例如,系统使用每个 domainDNS 对象的 wellKnownObjects 属性来存储 Users 容器的值,该容器存在于 domainDNS 对象的每个实例中。 这样,应用程序就可以通过指定 domainDNS 容器的已知 GUID 和 DN,以重命名安全的方式绑定到用户容器。 应用程序同样可以使用容器 的其他WellKnownObjects 属性。

如果需要对重要对象使用重命名安全绑定和/或搜索功能。

添加重命名安全绑定和搜索功能

  1. 在该容器中创建重要对象时,向容器对象的 otherWellKnownObjects 属性添加一个值。 该值包含表示已知对象的 GUID。 请注意,这不是 objectGUID 和该对象的 可分辨名称
  2. 使用 WKGUID 绑定功能绑定到重要对象或搜索重要对象。

otherWellKnownObjects 属性可以有多个值,并且包含设置它们的容器中已知对象的 GUID/DN 元组。 otherWellKnownObjects 属性具有 DNWithBinary 语法,其中值采用以下形式:

B:<char count>:<well known GUID>:<object DN>

在此示例中,“<char count>”是“已知 GUID>”<中十六进制数字的计数,该数字是 GUID) 中 GUID) 的 32 (十六进制数字的计数。 “<已知 GUID>”是已知 GUID 的十六进制数字表示形式。 “<object DN>”是由此 WKO 值表示的对象的可分辨名称。 服务器维护每个 wellKnownObjects和其他WellKnownObjects 值的 ObjectDN 部分,以便它包含最初在创建值时指定的对象的当前可分辨名称。

例如,如果 {df447b5e-aa5b-11d2-8d53-00c04f79ab81} 是 Fabrikam.com 域中 MyContainer 容器中的 MyObject 对象的已知 GUID, 则其他WellKnownObjects 值将指定已知 GUID 和 MyObject 的 DN:

B:32:df447b5eaa5b11d28d5300c04f79ab81:cn=MyObject,cn=MyContainer,dc=Fabrikam,dc=com

若要绑定到此对象,请使用以下 WKGUID 绑定字符串,该字符串指定对象的已知 GUID 和容器的 DN:

LDAP://<WKGUID=df447b5eaa5b11d28d5300c04f79ab81,cn=MyContainer,dc=Fabrikam,dc=com>

绑定到此对象后,可以使用 ADSI COM 接口搜索、读取、修改或删除该对象。

有关详细信息和演示如何将对象添加到 otherWellKnownObjects 属性的详细信息和代码示例,请参阅 用于创建容器对象的示例代码