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


Класс CAcl

Замечание

Библиотека активных шаблонов (ATL) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.

Этот класс представляет собой оболочку для 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: два состояния отличаются.

См. также

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