Класс 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.
Иерархия наследования
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
Списки управления доступом
Тузов
Общие сведения о классе
Глобальные функции безопасности