Поделиться через


Класс CDacl

Этот класс представляет собой оболочку для структуры DACL (список управления доступом по усмотрению).

Важно!

Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.

Синтаксис

class CDacl : public CAcl

Участники

Открытые конструкторы

Имя Описание
CDacl::CDacl Конструктор.
CDacl::~CDacl Деструктор

Открытые методы

Имя Описание
CDacl::AddAllowedAce Добавляет в объект разрешенную запись CDacl ACE (управление доступом).
CDacl::AddDeniedAce Добавляет в объект запрещенный ACE CDacl .
CDacl::GetAceCount Возвращает количество элементов управления доступом (записей управления доступом) в объекте CDacl .
CDacl::RemoveAce Удаляет определенную запись ACE (элемент управления доступом) из CDacl объекта.
CDacl::RemoveAllAces Удаляет все acEs, содержащиеся в объекте CDacl .

Открытые операторы

Имя Описание
CDacl::operator = Оператор присвоения.

Замечания

Дескриптор безопасности объекта может содержать DACL. DaCL содержит ноль или несколько элементов управления доступом (записи управления доступом), определяющие пользователей и группы, которые могут получить доступ к объекту. Если daCL пуст (т. е. содержит ноль ACEs), доступ явно не предоставляется, поэтому доступ неявно запрещен. Однако если дескриптор безопасности объекта не имеет DACL, объект незащищен и у всех есть полный доступ.

Чтобы получить DACL объекта, необходимо быть владельцем объекта или иметь READ_CONTROL доступ к объекту. Чтобы изменить daCL объекта, необходимо иметь WRITE_DAC доступ к объекту.

Используйте методы класса, предоставляемые для создания, добавления, удаления и удаления ACES из CDacl объекта. См. также AtlGetDacl и AtlSetDacl.

Общие сведения о модели управления доступом в Windows см. в контроль доступа в пакете SDK для Windows.

Иерархия наследования

Cacl

CDacl

Требования

Заголовок: atlsecurity.h

CDacl::AddAllowedAce

Добавляет в объект разрешенную запись CDacl ACE (управление доступом).

bool AddAllowedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    BYTE AceFlags = 0) throw(...);

bool AddAllowedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    BYTE AceFlags,
    const GUID* pObjectType,
    const GUID* pInheritedObjectType) throw(...);

Параметры

Rsid
Объект CSid.

AccessMask
Указывает маску прав доступа, разрешенную для указанного CSid объекта.

AceFlags
Набор битовых флагов, управляющих наследованием ACE.

pObjectType
Тип объекта.

pInheritedObjectType
Наследуемый тип объекта.

Возвращаемое значение

Возвращает значение TRUE, если ACE добавляется в объект, false при сбое CDacl .

Замечания

Объект CDacl содержит ноль или больше элементов управления доступом (записи управления доступом), определяющие пользователей и группы, которые могут получить доступ к объекту. Этот метод добавляет ACE, который позволяет получить доступ к объекту CDacl .

Описание различных флагов, которые можно задать в параметре, см. в ACE_HEADER.AceFlags

CDacl::AddDeniedAce

Добавляет в объект запрещенную запись CDacl ACE (управление доступом).

bool AddDeniedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    BYTE AceFlags = 0) throw(...);

bool AddDeniedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    BYTE AceFlags,
    const GUID* pObjectType,
    const GUID* pInheritedObjectType) throw(...);

Параметры

Rsid
Объект CSid.

AccessMask
Указывает маску прав доступа, которые будут запрещены для указанного CSid объекта.

AceFlags
Набор битовых флагов, управляющих наследованием ACE. По умолчанию используется значение 0 в первой форме метода.

pObjectType
Тип объекта.

pInheritedObjectType
Наследуемый тип объекта.

Возвращаемое значение

Возвращает значение TRUE, если ACE добавляется в объект, false при сбое CDacl .

Замечания

Объект CDacl содержит ноль или больше элементов управления доступом (записи управления доступом), определяющие пользователей и группы, которые могут получить доступ к объекту. Этот метод добавляет ACE, который запрещает доступ к объекту CDacl .

Описание различных флагов, которые можно задать в параметре, см. в ACE_HEADER.AceFlags

CDacl::CDacl

Конструктор.

CDacl (const ACL& rhs) throw(...);
CDacl () throw();

Параметры

rhs
Существующая ACL структура (список управления доступом).

Замечания

Объект CDacl можно создать при необходимости с помощью существующей ACL структуры. Важно отметить, что в качестве этого параметра следует передать только DACL (список управления доступом на дискреционный режим), а не SACL (системный список управления доступом). В отладочных сборках передача SACL приведет к утверждению. В сборках выпуска передача SACL приведет к тому, что элементы УПРАВЛЕНИЯ доступом (записи управления доступом) в списке ACL не будут игнорироваться, и ошибка не возникнет.

CDacl::~CDacl

Деструктор

~CDacl () throw();

Замечания

Деструктор освобождает все ресурсы, приобретенные объектом, включая все элементы УПРАВЛЕНИЯ доступом (записи управления доступом) с помощью CDacl::RemoveAllAces.

CDacl::GetAceCount

Возвращает количество элементов управления доступом (записей управления доступом) в объекте CDacl .

UINT GetAceCount() const throw();

Возвращаемое значение

Возвращает количество acEs, содержащихся в объекте CDacl .

CDacl::operator =

Оператор присвоения.

CDacl& operator= (const ACL& rhs) throw(...);

Параметры

rhs
ACL (список управления доступом) для назначения существующему объекту.

Возвращаемое значение

Возвращает ссылку на обновленный CDacl объект.

Замечания

Вы должны убедиться, что в эту функцию передается только daCL (список управления доступом по усмотрению). Передача SACL (системного списка управления доступом) в эту функцию приведет к тому, что в отладочных сборках будет вызванА ошибка в сборках выпуска.

CDacl::RemoveAce

Удаляет определенную запись ACE (элемент управления доступом) из CDacl объекта.

void RemoveAce(UINT nIndex) throw();

Параметры

Nindex
Индекс для удаления записи ACE.

Замечания

Этот метод является производным от CAtlArray::RemoveAt.

CDacl::RemoveAllAces

Удаляет все элементы управления доступом (элементы управления доступом), содержащиеся в объекте CDacl .

void RemoveAllAces() throw();

Замечания

Удаляет каждую ACE структуру (запись управления доступом) (при наличии) в объекте CDacl .

См. также

Пример безопасности
Класс CAcl
Списки управления доступом
Тузов
Общие сведения о классе
Глобальные функции безопасности