对特定类型对象的特定属性设置权限

特定于属性的权限可与特定于对象的继承结合使用,以提供强大而详细的管理委派。 可以设置特定属性的对象可继承 ACE,以允许指定用户或组读取和/或写入容器中指定类别子对象的特定属性。 例如,可以在组织单位 (OU) 上设置 ACE,使某个组可以读写该组织单位中所有用户对象的电话号码属性。

设置特定于属性的对象可继承 ACE

  1. IADsAccessControlEntry.AceType 设置为 ADS_ACETYPE_ACCESS_ALLOWED_OBJECTADS_ACETYPE_ACCESS_DENIED_OBJECT
  2. IADsAccessControlEntry.ObjectType 设置为属性的 schemaIDGUID。 例如,telephoneNumber 属性的 schemaIDGUID 为 {bf967a49-0de6-11d0-a285-00aa003049e2}。
  3. IADsAccessControlEntry.AceFlags 设置为 ADS_ACEFLAG_INHERIT_ACE
  4. IADsAccessControlEntry.InheritedObjectType 设置为可继承 ACE 的对象类的 schemaIDGUID。 例如,user 类的 schemaIDGUID 为 {bf967aba-0de6-11d0-a285-00aa003049e2}。
  5. IADsAccessControlEntry.Flags 设置为 ADS_FLAG_OBJECT_TYPE_PRESENTADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT

重要

将 ADS_ACEFLAG_INHERIT_ACE 设置为让 ACE 被继承。 此外,如果此 ACE 适用的对象类型与指定 ACE 的容器的对象类型不匹配,则应设置 ADS_ACEFLAG_INHERIT_ONLY_ACE。 如果未这样做,ACE 也将在容器上生效,并会授予意想不到的权限。

 

有关可用于设置此类 ACE 的详细信息和代码示例,请参阅在 Directory 对象上设置 ACE 的示例代码