Класс 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: два состояния отличаются.