Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Библиотека активных шаблонов (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: два состояния отличаются.