Класс CAcl

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

Важно!

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

Синтаксис

class CAcl

Участники

Общедоступные определения типов

Имя Описание
CAcl::CAccessMaskArray Массив ACCESS_MASKs.
CAcl::CAceFlagArray Массив BYTEs.
CAcl::CAceTypeArray Массив BYTEs.

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

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

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

Имя Описание
CAcl::GetAceCount Возвращает количество объектов записи управления доступом (ACE).
CAcl::GetAclEntries Извлекает записи списка управления доступом (ACL) из CAcl объекта.
CAcl::GetAclEntry Извлекает все сведения о записи в объекте CAcl .
CAcl::GetLength Возвращает длину ACL.
CAcl::GetPACL Возвращает PACL (указатель на ACL).
CAcl::IsEmpty CAcl Проверяет объект для записей.
CAcl::IsNull Возвращает состояние CAcl объекта.
CAcl::RemoveAce Удаляет определенную запись ACE (элемент управления доступом) из CAcl объекта.
CAcl::RemoveAces Удаляет все элементы управления доступом (элементы управления доступом) из CAcl указанного элемента CSidуправления доступом.
CAcl::SetEmpty Помечает объект как пустой CAcl .
CAcl::SetNull Помечает CAcl объект как NULL.

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

Имя Описание
CAcl::operator const ACL * Приведение CAcl объекта к ACL структуре.
CAcl::operator = Оператор присвоения.

Замечания

Структура ACL — это заголовок списка ACL (список управления доступом). ACL содержит последовательный список нулевых или более acEs (записи управления доступом). Отдельные acES в списке ACL нумеруются от 0 до n-1, где n — число ACEs в ACL. При редактировании ACL приложение ссылается на запись управления доступом (ACE) в ACL по его индексу.

Существует два типа ACL:

  • По выбору

  • Система

Дискреционный ACL управляется владельцем объекта или любым пользователем, предоставленным WRITE_DAC доступ к объекту. Он указывает, что определенные пользователи и группы доступа могут иметь объект. Например, владелец файла может использовать дискреционный список ACL для управления доступом пользователей и групп к файлу.

Объект также может иметь сведения о безопасности на уровне системы, связанные с ним, в виде системного ACL, управляемого системным администратором. Системный ACL может разрешить системным администраторам проверять любые попытки получить доступ к объекту.

Дополнительные сведения см. в обсуждении ACL в пакете SDK для Windows.

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

Требования

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

CAcl::CAccessMaskArray

Массив объектов ACCESS_MASK.

typedef CAtlArray<ACCESS_MASK> CAccessMaskArray;

Замечания

Этот типdef указывает тип массива, который можно использовать для хранения прав доступа, используемых в записях управления доступом (ACEs).

CAcl::CAceFlagArray

Массив BYTEs.

typedef CAtlArray<BYTE> CAceFlagArray;

Замечания

Этот типdef указывает тип массива, используемый для определения флагов элемента управления доступом (ACE). Полный список возможных флагов см. в определении ACE_HEADER .

CAcl::CAceTypeArray

Массив BYTEs.

typedef CAtlArray<BYTE> CAceTypeArray;

Замечания

Этот типdef указывает тип массива, используемый для определения характера объектов записи управления доступом (ACE), таких как ACCESS_ALLOWED_ACE_TYPE или ACCESS_DENIED_ACE_TYPE. Полный список возможных типов см. в определении ACE_HEADER .

CAcl::CAcl

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

CAcl() throw();
CAcl(const CAcl& rhs) throw(...);

Параметры

rhs
Существующий объект CAcl.

Замечания

Объект CAcl можно создать при необходимости с помощью существующего CAcl объекта.

CAcl::~CAcl

Деструктор

virtual ~CAcl() throw();

Замечания

Деструктор освобождает все ресурсы, приобретенные объектом.

CAcl::GetAceCount

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

virtual UINT GetAceCount() const throw() = 0;

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

Возвращает количество записей ACE в объекте CAcl .

CAcl::GetAclEntries

Извлекает записи списка управления доступом (ACL) из CAcl объекта.

void GetAclEntries(
    CSid::CSidArray* pSids,
    CAccessMaskArray* pAccessMasks = NULL,
    CAceTypeArray* pAceTypes = NULL,
    CAceFlagArray* pAceFlags = NULL) const throw(...);

Параметры

pSids
Указатель на массив объектов CSid .

pAccessMasks
Маски доступа.

pAceTypes
Типы записей управления доступом (ACE).

pAceFlags
Флаги ACE.

Замечания

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

Содержимое каждого массива соответствует друг другу, то есть первый элемент массива соответствует первому элементу CAccessMaskArray в CSidArray массиве и т. д.

Дополнительные сведения о типах и флагах ACE см . в ACE_HEADER .

CAcl::GetAclEntry

Извлекает все сведения о записи в списке управления доступом (ACL).

void GetAclEntry(
    UINT nIndex,
    CSid* pSid,
    ACCESS_MASK* pMask = NULL,
    BYTE* pType = NULL,
    BYTE* pFlags = NULL,
    GUID* pObjectType = NULL,
    GUID* pInheritedObjectType = NULL) const throw(...);

Параметры

Nindex
Индекс для получения записи ACL.

Psid
Объект CSid, к которому применяется запись ACL.

pMask
Маска, указывающая разрешения на предоставление или запрет доступа.

pType
Тип ACE.

pFlags
Флаги ACE.

pObjectType
Тип объекта. Это значение будет иметь значение GUID_NULL, если тип объекта не указан в ACE или если ACE не является объектом ACE.

pInheritedObjectType
Наследуемый тип объекта. Это значение будет иметь значение GUID_NULL, если унаследованный тип объекта не указан в ACE или если ACE не является объектом ACE.

Замечания

Этот метод извлекает все сведения об отдельном ACE, предоставляя больше сведений, чем CAcl::GetAclEntries только делает доступными.

Дополнительные сведения о типах и флагах ACE см . в ACE_HEADER .

CAcl::GetLength

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

UINT GetLength() const throw();

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

Возвращает необходимую длину в байтах, необходимых для хранения ACL структуры.

CAcl::GetPACL

Возвращает указатель на список управления доступом (ACL).

const ACL* GetPACL() const throw(...);

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

Возвращает указатель на структуру ACL .

CAcl::IsEmpty

CAcl Проверяет объект для записей.

bool IsEmpty() const throw();

Замечания

Возвращает значение TRUE, если CAcl объект не имеет значения NULL и не содержит записей. Возвращает ЗНАЧЕНИЕ FALSE, если CAcl объект имеет значение NULL или содержит по крайней мере одну запись.

CAcl::IsNull

Возвращает состояние CAcl объекта.

bool IsNull() const throw();

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

Возвращает значение TRUE, если CAcl объект имеет значение NULL, false в противном случае.

CAcl::operator const ACL *

Приведение CAcl объекта к ACL структуре (списка управления доступом).

operator const ACL *() const throw(...);

Замечания

Возвращает адрес ACL структуры.

CAcl::operator =

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

CAcl& operator= (const CAcl& rhs) throw(...);

Параметры

rhs
Назначение CAcl существующему объекту.

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

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

CAcl::RemoveAce

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

void RemoveAce(UINT nIndex) throw();

Параметры

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

Замечания

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

CAcl::RemoveAces

Удаляет все элементы управления доступом (элементы управления доступом) из CAcl указанного элемента CSidуправления доступом.

bool RemoveAces(const CSid& rSid) throw(...)

Параметры

Rsid
Ссылка на объект CSid.

CAcl::SetEmpty

Помечает объект как пустой CAcl .

void SetEmpty() throw();

Замечания

Можно CAcl задать значение null или null: два состояния отличаются.

CAcl::SetNull

Помечает CAcl объект как NULL.

void SetNull() throw();

Замечания

Можно CAcl задать значение null или null: два состояния отличаются.

См. также

Общие сведения о классе
Глобальные функции безопасности