структура ACCESS_DENIED_OBJECT_ACE (winnt.h)

Структура ACCESS_DENIED_OBJECT_ACE определяет запись управления доступом (ACE), которая управляет запрещенным доступом к объекту, набору свойств или свойству. ACE содержит набор прав доступа, GUID , определяющий тип объекта, и идентификатор безопасности (SID), определяющий доверенного лица , которому система будет запрещать доступ. ACE также содержит GUID и набор флагов, управляющих наследованием ACE дочерними объектами.

Синтаксис

typedef struct _ACCESS_DENIED_OBJECT_ACE {
  ACE_HEADER  Header;
  ACCESS_MASK Mask;
  DWORD       Flags;
  GUID        ObjectType;
  GUID        InheritedObjectType;
  DWORD       SidStart;
} ACCESS_DENIED_OBJECT_ACE, *PACCESS_DENIED_OBJECT_ACE;

Члены

Header

ACE_HEADER структура, указывающая размер и тип ACE. Он содержит флаги, управляющие наследованием ACE дочерними объектами. Элемент AceType структуры ACE_HEADER должен иметь значение ACCESS_DENIED_OBJECT_ACE_TYPE, а для элемента AceSize — общее количество байтов, выделенных для структуры ACCESS_DENIED_OBJECT_ACE .

Mask

ACCESS_MASK, указывающий права доступа, которые система будет запрещать доверенному лицу.

Flags

Набор битовых флагов, указывающих, присутствуют ли члены ObjectType и InheritedObjectType . Этот параметр может иметь одно или несколько из следующих значений.

Значение Значение
0
Ни ObjectType, ни InheritedObjectType отсутствуют. Элемент SidStart следует сразу после элемента Flags .
ACE_OBJECT_TYPE_PRESENT
ObjectType присутствует и содержит GUID.

Если это значение не указано, сразу после элемента Flags следует элемент InheritedObjectType.

ACE_INHERITED_OBJECT_TYPE_PRESENT
InheritedObjectType присутствует и содержит GUID.

Если это значение не указано, все типы дочерних объектов могут наследовать ACE.

ObjectType

Этот элемент существует только в том случае, если бит ACE_OBJECT_TYPE_PRESENT задан в элементе Flags . В противном случае элемент InheritedObjectType следует сразу после элемента Flags .

Если этот элемент существует, это структура GUID , которая идентифицирует набор свойств, свойство, расширенное право или тип дочернего объекта. Назначение этого GUID зависит от прав доступа, указанных в элементе Mask .

Значение Значение
ADS_RIGHT_DS_CONTROL_ACCESS
Идентификатор GUIDObjectType определяет расширенное право доступа.
ADS_RIGHT_DS_CREATE_CHILD
Идентификатор GUIDObjectType определяет тип дочернего объекта. ACE управляет правом доверенного лица на создание этого типа дочернего объекта.
ADS_RIGHT_DS_READ_PROP
Идентификатор GUIDObjectType определяет набор свойств или свойство объекта . ACE управляет правом доверенного лица на чтение свойства или набора свойств.
ADS_RIGHT_DS_WRITE_PROP
Идентификатор GUIDObjectType определяет набор свойств или свойство объекта . ACE управляет правом доверенного лица на запись свойства или набора свойств.
ADS_RIGHT_DS_SELF
Идентификатор GUIDObjectType определяет проверенную запись.

InheritedObjectType

Этот элемент существует только в том случае, если бит ACE_INHERITED_OBJECT_TYPE_PRESENT задан в элементе Flags .

Если этот элемент существует, это структура GUID , которая определяет тип дочернего объекта, который может наследовать ACE. Наследование также контролируется флагами наследования в ACE_HEADER, а также любой защитой от наследования дочерних объектов.

Смещение этого элемента может отличаться. Если элемент Flags не содержит флаг ACE_OBJECT_TYPE_PRESENT, элемент InheritedObjectType начинается со смещения, указанного элементом ObjectType .

SidStart

Указывает первый DWORD идентификатора безопасности, который определяет доверенного лица , для которого отказано в правах доступа. Оставшиеся байты идентификатора безопасности хранятся в непрерывной памяти после элемента SidStart . Этот идентификатор безопасности можно добавить с данными приложения.

Смещение этого элемента может отличаться. Если элемент Flags равен нулю, элемент SidStart начинается со смещения, указанного элементом ObjectType . Если flags содержит только один флаг (ACE_OBJECT_TYPE_PRESENT или ACE_INHERITED_OBJECT_TYPE_PRESENT), элемент SidStart начинается со смещения, указанного в элементе InheritedObjectType .

Комментарии

Если идентификатор GUID ObjectType и InheritedObjectType не указан, структура ACCESS_DENIED_OBJECT_ACE имеет ту же семантику, что и структура ACCESS_DENIED_ACE. В этом случае используйте структуру ACCESS_DENIED_ACE , так как она меньше и эффективнее.

ACL, содержащий ACCESS_DENIED_OBJECT_ACE , должен указывать номер редакции ACL_REVISION_DS в заголовке ACL .

Права доступа, указанные членом Mask , запрещаются любому доверенному лицу , обладающему включенным идентификатором безопасности, который соответствует идентификатору безопасности, хранящейся в элементе SidStart .

Структуру ACCESS_DENIED_OBJECT_ACE можно создать в списке управления доступом (ACL) путем вызова функции AddAccessDeniedObjectAce . При использовании этой функции автоматически выделяется правильный объем памяти, необходимый для размещения структур GUID в элементах ObjectType и InheritedObjectType , если они существуют, а также для размещения идентификатора безопасности доверенного лица. Кроме того, значения элементов Header.AceType и Header.AceSize задаются автоматически. При создании структуры ACCESS_DENIED_OBJECT_ACE вне ACL необходимо выделить достаточно памяти для размещения структур GUID в элементах ObjectType и InheritedObjectType , если существует один или оба из них, а также для размещения полного идентификатора безопасности доверенного лица в элементе SidStart и непрерывной памяти после него. Кроме того, значения элементов Header.AceType и Header.AceSize должны быть явно заданы приложением.

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхняя часть winnt.h (включая Windows.h)

См. также раздел

ACE

ACL

AddAccessAllowedObjectAce

GUID

SID