Класс CSecurityDesc
Этот класс представляет собой оболочку для SECURITY_DESCRIPTOR
структуры.
Внимание
Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.
Синтаксис
class CSecurityDesc
Участники
Открытые конструкторы
Имя | Описание |
---|---|
CSecurityDesc::CSecurityDesc | Конструктор. |
CSecurityDesc::~CSecurityDesc | Деструктор |
Открытые методы
Имя | Описание |
---|---|
CSecurityDesc::FromString | Преобразует дескриптор безопасности в допустимый дескриптор функциональной безопасности. |
CSecurityDesc::GetControl | Извлекает данные элемента управления из дескриптора безопасности. |
CSecurityDesc::GetDacl | Извлекает сведения о списке управления доступом (DACL) из дескриптора безопасности. |
CSecurityDesc::GetGroup | Извлекает данные основной группы из дескриптора безопасности. |
CSecurityDesc::GetOwner | Извлекает сведения владельца из дескриптора безопасности. |
CSecurityDesc::GetPSECURITY_DESCRIPTOR | Возвращает указатель на структуру SECURITY_DESCRIPTOR . |
CSecurityDesc::GetSacl | Извлекает сведения о списке управления доступом (SACL) системы из дескриптора безопасности. |
CSecurityDesc::IsDaclAutoInherited | Определяет, настроен ли DACL для поддержки автоматического распространения. |
CSecurityDesc::IsDaclDefaulted | Определяет, настроен ли дескриптор безопасности с помощью DACL по умолчанию. |
CSecurityDesc::IsDaclPresent | Определяет, содержит ли дескриптор безопасности DACL. |
CSecurityDesc::IsDaclProtected | Определяет, настроен ли DACL для предотвращения изменений. |
CSecurityDesc::IsGroupDefaulted | Определяет, был ли идентификатор безопасности группы безопасности (SID) дескриптора безопасности по умолчанию. |
CSecurityDesc::IsOwnerDefaulted | Определяет, задан ли идентификатор безопасности владельца дескриптора безопасности по умолчанию. |
CSecurityDesc::IsSaclAutoInherited | Определяет, настроен ли saCL для поддержки автоматического распространения. |
CSecurityDesc::IsSaclDefaulted | Определяет, настроен ли дескриптор безопасности с помощью saCL по умолчанию. |
CSecurityDesc::IsSaclPresent | Определяет, содержит ли дескриптор безопасности SACL. |
CSecurityDesc::IsSaclProtected | Определяет, настроен ли saCL для предотвращения изменений. |
CSecurityDesc::IsSelfRelative | Определяет, находится ли дескриптор безопасности в автономном формате. |
CSecurityDesc::MakeAbsolute | Вызовите этот метод, чтобы преобразовать дескриптор безопасности в абсолютный формат. |
CSecurityDesc::MakeSelfRelative | Вызовите этот метод, чтобы преобразовать дескриптор безопасности в автономный формат. |
CSecurityDesc::SetControl | Устанавливает управляющие биты дескриптора безопасности. |
CSecurityDesc::SetDacl | Задает сведения в DACL. Если daCL уже присутствует в дескрипторе безопасности, он заменяется. |
CSecurityDesc::SetGroup | Задает основную группу сведений о дескрипторе безопасности абсолютного формата, заменив все сведения о первичной группе, которые уже присутствуют. |
CSecurityDesc::SetOwner | Задает сведения о владельце абсолютного дескриптора безопасности абсолютного формата, заменив все данные владельца, уже представленные. |
CSecurityDesc::SetSacl | Задает сведения в SACL. Если в дескрипторе безопасности уже присутствует saCL, он заменяется. |
CSecurityDesc::ToString | Преобразует дескриптор безопасности в строковый формат. |
Открытые операторы
Имя | Описание |
---|---|
CSecurityDesc::operator const SECURITY_DESCRIPTOR * | Возвращает указатель на структуру SECURITY_DESCRIPTOR . |
CSecurityDesc::operator = | Оператор присвоения. |
Замечания
Структура SECURITY_DESCRIPTOR
содержит сведения о безопасности, связанные с объектом. Приложения используют эту структуру для задания и запроса состояния безопасности объекта. См. также AtlGetSecurityDescriptor.
Приложения не должны изменять структуру SECURITY_DESCRIPTOR
напрямую и вместо этого следует использовать предоставленные методы класса.
Общие сведения о модели управления доступом в Windows см. в контроль доступа в пакете SDK для Windows.
Требования
Заголовок: atlsecurity.h
CSecurityDesc::CSecurityDesc
Конструктор.
CSecurityDesc() throw();
CSecurityDesc(const CSecurityDesc& rhs) throw(... );
CSecurityDesc(const SECURITY_DESCRIPTOR& rhs) throw(...);
Параметры
rhs
CSecurityDesc
Объект или SECURITY_DESCRIPTOR
структура, назначаемая новому CSecurityDesc
объекту.
Замечания
Объект CSecurityDesc
можно создать при необходимости с помощью SECURITY_DESCRIPTOR
структуры или ранее определенного CSecurityDesc
объекта.
CSecurityDesc::~CSecurityDesc
Деструктор
virtual ~CSecurityDesc() throw();
Замечания
Деструктор освобождает все выделенные ресурсы.
CSecurityDesc::FromString
Преобразует дескриптор безопасности в допустимый дескриптор функциональной безопасности.
bool FromString(LPCTSTR pstr) throw(...);
Параметры
pstr
Указатель на строку, завершающую значение NULL, которая содержит дескриптор безопасности формата строки, который необходимо преобразовать.
Возвращаемое значение
Возвращает значение true при успешном выполнении. Создает исключение при сбое.
Замечания
Строку можно создать с помощью CSecurityDesc::ToString. Преобразование дескриптора безопасности в строку упрощает хранение и передачу.
Этот метод вызывает ConvertStringSecurityDescriptorToSecurityDescriptor.
CSecurityDesc::GetControl
Извлекает данные элемента управления из дескриптора безопасности.
bool GetControl(SECURITY_DESCRIPTOR_CONTROL* psdc) const throw();
Параметры
psdc
Указатель на SECURITY_DESCRIPTOR_CONTROL
структуру, которая получает сведения об элементе управления дескриптора безопасности.
Возвращаемое значение
Возвращает значение true, если метод успешно выполнен, значение false, если он завершается ошибкой.
Замечания
Этот метод вызывает GetSecurityDescriptorControl.
CSecurityDesc::GetDacl
Извлекает сведения о списке управления доступом (DACL) из дескриптора безопасности.
bool GetDacl(
CDacl* pDacl,
bool* pbPresent = NULL,
bool* pbDefaulted = NULL) const throw(...);
Параметры
pDacl
Указатель на CDacl
структуру, в которой хранится копия DACL дескриптора безопасности. Если существует дискреционный ACL, метод задает pDacl адресу дискреционного ACL дескриптора безопасности. Если дискреционный список ACL не существует, значение не сохраняется.
pbPresent
Указатель на значение, указывающее на наличие дискреционного списка ACL в указанном дескрипторе безопасности. Если дескриптор безопасности содержит дискреционный список ACL, этот параметр имеет значение true. Если дескриптор безопасности не содержит дискреционный список ACL, этот параметр имеет значение false.
pbDefaulted
Указатель на флаг, установленный на значение флага SE_DACL_DEFAULTED в SECURITY_DESCRIPTOR_CONTROL
структуре, если для дескриптора безопасности существует дискреционный список ACL. Если этот флаг имеет значение true, дискреционный ACL был получен механизмом по умолчанию; Значение , если значение false, список ACL для дискреционных пользователей был явно указан пользователем.
Возвращаемое значение
Возвращает значение true, если метод успешно выполнен, значение false, если он завершается ошибкой.
CSecurityDesc::GetGroup
Извлекает данные основной группы из дескриптора безопасности.
bool GetGroup(
CSid* pSid,
bool* pbDefaulted = NULL) const throw(...);
Параметры
pSid
Указатель на CSid (идентификатор безопасности), который получает копию группы, хранящейся в CDacl.
pbDefaulted
Указатель на флаг, заданный для значения флага SE_GROUP_DEFAULTED в структуре при возврате SECURITY_DESCRIPTOR_CONTROL
метода.
Возвращаемое значение
Возвращает значение true, если метод успешно выполнен, значение false, если он завершается ошибкой.
CSecurityDesc::GetOwner
Извлекает сведения владельца из дескриптора безопасности.
bool GetOwner(
CSid* pSid,
bool* pbDefaulted = NULL) const throw(...);
Параметры
pSid
Указатель на CSid (идентификатор безопасности), который получает копию группы, хранящейся в CDacl.
pbDefaulted
Указатель на флаг, заданный для значения флага SE_OWNER_DEFAULTED в структуре при возврате SECURITY_DESCRIPTOR_CONTROL
метода.
Возвращаемое значение
Возвращает значение true, если метод успешно выполнен, значение false, если он завершается ошибкой.
CSecurityDesc::GetPSECURITY_DESCRIPTOR
Возвращает указатель на структуру SECURITY_DESCRIPTOR
.
const SECURITY_DESCRIPTOR* GetPSECURITY_DESCRIPTOR() const throw();
Возвращаемое значение
Возвращает указатель на структуру SECURITY_DESCRIPTOR .
CSecurityDesc::GetSacl
Извлекает сведения о списке управления доступом (SACL) системы из дескриптора безопасности.
bool GetSacl(
CSacl* pSacl,
bool* pbPresent = NULL,
bool* pbDefaulted = NULL) const throw(...);
Параметры
pSacl
Указатель на CSacl
структуру, в которой хранится копия SACL дескриптора безопасности. Если системный ACL существует, метод задает pSacl адресу системного ACL дескриптора безопасности. Если системный ACL не существует, значение не сохраняется.
pbPresent
Указатель на флаг набора методов, указывающий наличие системного ACL в указанном дескрипторе безопасности. Если дескриптор безопасности содержит системный ACL, этот параметр имеет значение true. Если дескриптор безопасности не содержит системный ACL, этот параметр имеет значение false.
pbDefaulted
Указатель на флаг, заданный для значения флага SE_SACL_DEFAULTED в SECURITY_DESCRIPTOR_CONTROL
структуре, если системный ACL существует для дескриптора безопасности.
Возвращаемое значение
Возвращает значение true, если метод успешно выполнен, значение false, если он завершается ошибкой.
CSecurityDesc::IsDaclAutoInherited
Определяет, настроен ли список управления доступом (DACL) для поддержки автоматического распространения.
bool IsDaclAutoInherited() const throw();
Возвращаемое значение
Возвращает значение true, если дескриптор безопасности содержит DACL, настроенный для поддержки автоматического распространения наследуемых записей управления доступом (ACEs) к существующим дочерним объектам. В противном случае возвращает значение false.
Замечания
Система задает этот бит при выполнении алгоритма автоматического наследования для объекта и существующих дочерних объектов.
CSecurityDesc::IsDaclDefaulted
Определяет, настроен ли дескриптор безопасности с помощью списка управления доступом по умолчанию (DACL).
bool IsDaclDefaulted() const throw();
Возвращаемое значение
Возвращает значение true, если дескриптор безопасности содержит daCL по умолчанию, значение false в противном случае.
Замечания
Этот флаг может повлиять на то, как система обрабатывает DACL в отношении наследования записи управления доступом (ACE). Например, если создатель объекта не указывает DACL, объект получает daCL по умолчанию из маркера доступа создателя. Система игнорирует этот флаг, если флаг SE_DACL_PRESENT не задан.
Этот флаг используется для определения способа вычисления окончательного DACL объекта и не хранится физически в элементе управления дескриптором безопасности защищаемого объекта.
Чтобы задать этот флаг, используйте метод CSecurityDesc::SetDacl .
CSecurityDesc::IsDaclPresent
Определяет, содержит ли дескриптор безопасности список управления доступом (DACL).
bool IsDaclPresent() const throw();
Возвращаемое значение
Возвращает значение true, если дескриптор безопасности содержит DACL, значение false в противном случае.
Замечания
Если этот флаг не задан, или если этот флаг задан и daCL имеет значение NULL, дескриптор безопасности разрешает полный доступ ко всем пользователям.
Этот флаг используется для хранения сведений о безопасности, указанных вызывающим объектом, пока дескриптор безопасности не связан с защищаемым объектом. После того как дескриптор безопасности связан с защищаемым объектом, флаг SE_DACL_PRESENT всегда устанавливается в элементе управления дескриптором безопасности.
Чтобы задать этот флаг, используйте метод CSecurityDesc::SetDacl .
CSecurityDesc::IsDaclProtected
Определяет, настроен ли список управления доступом (DACL) для предотвращения изменений.
bool IsDaclProtected() const throw();
Возвращаемое значение
Возвращает значение true, если DACL настроен для предотвращения изменения дескриптора безопасности с помощью наследуемых записей управления доступом (ACEs). В противном случае возвращает значение false.
Замечания
Чтобы задать этот флаг, используйте метод CSecurityDesc::SetDacl .
Этот метод поддерживает автоматическое распространение наследуемых acEs.
CSecurityDesc::IsGroupDefaulted
Определяет, был ли идентификатор безопасности группы безопасности (SID) дескриптора безопасности по умолчанию.
bool IsGroupDefaulted() const throw();
Возвращаемое значение
Возвращает значение true, если механизм по умолчанию, а не исходный поставщик дескриптора безопасности, предоставил идентификатор безопасности группы дескриптора безопасности. В противном случае возвращает значение false.
Замечания
Чтобы задать этот флаг, используйте метод CSecurityDesc::SetGroup .
CSecurityDesc::IsOwnerDefaulted
Определяет, задан ли идентификатор безопасности владельца дескриптора безопасности по умолчанию.
bool IsOwnerDefaulted() const throw();
Возвращаемое значение
Возвращает значение true, если механизм по умолчанию, а не исходный поставщик дескриптора безопасности, предоставил идентификатор безопасности владельца дескриптора безопасности. В противном случае возвращает значение false.
Замечания
Чтобы задать этот флаг, используйте метод CSecurityDesc::SetOwner .
CSecurityDesc::IsSaclAutoInherited
Определяет, настроен ли системный список управления доступом (SACL) для поддержки автоматического распространения.
bool IsSaclAutoInherited() const throw();
Возвращаемое значение
Возвращает значение true, если дескриптор безопасности содержит saCL, настроенный для поддержки автоматического распространения наследуемых записей управления доступом (ACEs) на существующие дочерние объекты. В противном случае возвращает значение false.
Замечания
Система задает этот бит при выполнении алгоритма автоматического наследования для объекта и существующих дочерних объектов.
CSecurityDesc::IsSaclDefaulted
Определяет, настроен ли дескриптор безопасности со списком управления доступом по умолчанию (SACL).
bool IsSaclDefaulted() const throw();
Возвращаемое значение
Возвращает значение true, если дескриптор безопасности содержит значение SACL по умолчанию, значение false в противном случае.
Замечания
Этот флаг может повлиять на то, как система обрабатывает SACL в отношении наследования записи управления доступом (ACE). Система игнорирует этот флаг, если флаг SE_SACL_PRESENT не задан.
Чтобы задать этот флаг, используйте метод CSecurityDesc::SetSacl .
CSecurityDesc::IsSaclPresent
Определяет, содержит ли дескриптор безопасности список системного управления доступом (SACL).
bool IsSaclPresent() const throw();
Возвращаемое значение
Возвращает значение true, если дескриптор безопасности содержит saCL, значение false в противном случае.
Замечания
Чтобы задать этот флаг, используйте метод CSecurityDesc::SetSacl .
CSecurityDesc::IsSaclProtected
Определяет, настроен ли системный список управления доступом (SACL) для предотвращения изменений.
bool IsSaclProtected() const throw();
Возвращаемое значение
Возвращает значение true, если saCL настроен для предотвращения изменения дескриптора безопасности с помощью наследуемых записей управления доступом (ACEs). В противном случае возвращает значение false.
Замечания
Чтобы задать этот флаг, используйте метод CSecurityDesc::SetSacl .
Этот метод поддерживает автоматическое распространение наследуемых acEs.
CSecurityDesc::IsSelfRelative
Определяет, находится ли дескриптор безопасности в автономном формате.
bool IsSelfRelative() const throw();
Возвращаемое значение
Возвращает значение true, если дескриптор безопасности находится в автономном формате со всеми сведениями о безопасности в непрерывном блоке памяти. Возвращает значение false, если дескриптор безопасности находится в абсолютном формате. Дополнительные сведения см . в описании дескрипторов абсолютной и относительной безопасности.
CSecurityDesc::MakeAbsolute
Вызовите этот метод, чтобы преобразовать дескриптор безопасности в абсолютный формат.
bool MakeAbsolute() throw(...);
Возвращаемое значение
Возвращает значение true, если метод успешно выполнен, значение false в противном случае.
Замечания
Дескриптор безопасности в абсолютном формате содержит указатели на содержащиеся в нем сведения, а не сами сведения. Дескриптор безопасности в автономном формате содержит сведения в непрерывном блоке памяти. В дескрипторе безопасности, структура всегда запускает информацию, но другие компоненты дескриптора SECURITY_DESCRIPTOR
безопасности могут следовать структуре в любом порядке. Вместо использования адресов памяти компоненты дескриптора безопасности самостоятельно определяются смещениями с начала дескриптора безопасности. Этот формат полезен, если дескриптор безопасности должен храниться на диске или передаваться с помощью протокола связи. Дополнительные сведения см . в описании дескрипторов абсолютной и относительной безопасности.
CSecurityDesc::MakeSelfRelative
Вызовите этот метод, чтобы преобразовать дескриптор безопасности в автономный формат.
bool MakeSelfRelative() throw(...);
Возвращаемое значение
Возвращает значение true, если метод успешно выполнен, значение false в противном случае.
Замечания
Дескриптор безопасности в абсолютном формате содержит указатели на содержащиеся в ней сведения, а не сами данные. Дескриптор безопасности в автономном формате содержит сведения в непрерывном блоке памяти. В дескрипторе безопасности, структура всегда запускает информацию, но другие компоненты дескриптора SECURITY_DESCRIPTOR
безопасности могут следовать структуре в любом порядке. Вместо использования адресов памяти компоненты дескриптора безопасности определяются смещениями с начала дескриптора безопасности. Этот формат полезен, если дескриптор безопасности должен храниться на диске или передаваться с помощью протокола связи. Дополнительные сведения см . в описании дескрипторов абсолютной и относительной безопасности.
CSecurityDesc::operator =
Оператор присвоения.
CSecurityDesc& operator= (const SECURITY_DESCRIPTOR& rhs) throw(...);
CSecurityDesc& operator= (const CSecurityDesc& rhs) throw(...);
Параметры
rhs
Структура SECURITY_DESCRIPTOR
или CSecurityDesc
объект, назначаемый объекту CSecurityDesc
.
Возвращаемое значение
Возвращает обновленный CSecurityDesc
объект.
CSecurityDesc::operator const SECURITY_DESCRIPTOR *
Приведение значения к указателю на структуру SECURITY_DESCRIPTOR
.
operator const SECURITY_DESCRIPTOR *() const throw();
CSecurityDesc::SetControl
Устанавливает управляющие биты дескриптора безопасности.
bool SetControl(
SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,
SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet) throw();
Параметры
ControlBitsOfInterest
Маска SECURITY_DESCRIPTOR_CONTROL, указывающая биты элемента управления, заданные. Список флагов, которые можно задать, см. в разделе SetSecurityDescriptorControl.
ControlBitsToSet
Маска SECURITY_DESCRIPTOR_CONTROL, указывающая новые значения для битов элемента управления, указанных маской ControlBitsOfInterest . Этот параметр может быть сочетанием флагов, перечисленных для параметра ControlBitsOfInterest .
Возвращаемое значение
Возвращает значение true, если операция выполнена успешно; в противном случае — значение false.
Замечания
Этот метод вызывает SetSecurityDescriptorControl.
CSecurityDesc::SetDacl
Задает сведения в списке управления доступом (DACL). Если daCL уже присутствует в дескрипторе безопасности, он заменяется.
inline void SetDacl(
bool bPresent = true,
bool bDefaulted = false) throw(...);
inline void SetDacl(
const CDacl& Dacl,
bool bDefaulted = false) throw(...);
Параметры
Dacl
Ссылка на объект, указывающий CDacl
DACL для дескриптора безопасности. Этот параметр не должен иметь значение NULL. Чтобы задать значение NULL DACL в дескрипторе безопасности, первая форма метода должна использоваться с параметром bPresent , равным false.
bPresent
Указывает флаг, указывающий наличие DACL в дескрипторе безопасности. Если этот параметр имеет значение true, метод задает флаг SE_DACL_PRESENT в SECURITY_DESCRIPTOR_CONTROL
структуре и использует значения в параметрах Dacl и bDefaulted . Если значение равно false, метод очищает флаг SE_DACL_PRESENT и bDefaulted игнорируется.
bDefaulted
Указывает флаг, указывающий источник DACL. Если этот флаг имеет значение true, DACL извлекается некоторым механизмом по умолчанию. Если значение false, DACL было явно указано пользователем. Метод сохраняет это значение в флаге SECURITY_DESCRIPTOR_CONTROL
SE_DACL_DEFAULTED структуры. Если этот параметр не указан, флаг SE_DACL_DEFAULTED очищается.
Возвращаемое значение
Возвращает значение true, если операция выполнена успешно; в противном случае — значение false.
Замечания
Существует важное различие между пустым и несуществующим DACL. Если daCL пуст, он не содержит записей управления доступом и не предоставляет явным образом права доступа. В результате доступ к объекту неявно запрещен. Если объект не имеет DACL, с другой стороны, защита не назначается объекту, а любой запрос доступа предоставляется.
CSecurityDesc::SetGroup
Задает основную группу сведений о дескрипторе безопасности абсолютного формата, заменив все сведения о первичной группе, которые уже присутствуют.
bool SetGroup(const CSid& Sid, bool bDefaulted = false) throw(...);
Параметры
Ид безопасности
Ссылка на объект CSid для новой первичной группы дескриптора безопасности. Этот параметр не должен иметь значение NULL. Дескриптор безопасности можно пометить как не имеющий DACL или SACL, но он должен иметь группу и владельца, даже это идентификатор NULL (который является встроенным идентификатором БЕЗОПАСНОСТИ с особым значением).
bDefaulted
Указывает, была ли основная информация группы производными от механизма по умолчанию. Если это значение имеет значение true, это сведения по умолчанию, а метод сохраняет это значение в виде флага SE_GROUP_DEFAULTED в SECURITY_DESCRIPTOR_CONTROL
структуре. Если этот параметр равен нулю, флаг SE_GROUP_DEFAULTED очищается.
Возвращаемое значение
Возвращает значение true, если операция выполнена успешно; в противном случае — значение false.
CSecurityDesc::SetOwner
Задает сведения о владельцах дескриптора безопасности абсолютного формата. Он заменяет все сведения владельца, уже представленные.
bool SetOwner(const CSid& Sid, bool bDefaulted = false) throw(...);
Параметры
Ид безопасности
Объект CSid для нового владельца дескриптора безопасности. Этот параметр не должен иметь значение NULL.
bDefaulted
Указывает, является ли информация владельца производным от механизма по умолчанию. Если это значение имеет значение true, это сведения по умолчанию. Метод сохраняет это значение в виде флага SE_OWNER_DEFAULTED в SECURITY_DESCRIPTOR_CONTROL
структуре. Если этот параметр равен нулю, флаг SE_OWNER_DEFAULTED очищается.
Возвращаемое значение
Возвращает значение true, если операция выполнена успешно; в противном случае — значение false.
CSecurityDesc::SetSacl
Задает сведения в системном списке управления доступом (SACL). Если в дескрипторе безопасности уже присутствует saCL, он заменяется.
bool SetSacl(const CSacl& Sacl, bool bDefaulted = false) throw(...);
Параметры
Sacl
Указатель на объект, указывающий CSacl
SACL для дескриптора безопасности. Этот параметр не должен иметь значение NULL и должен быть объектом CSacl. В отличие от DACLs, нет разницы между NULL и пустым SACL, так как объекты SACL не указывают права доступа, только данные аудита.
bDefaulted
Указывает флаг, указывающий источник SACL. Если этот флаг имеет значение true, saCL извлекается некоторым механизмом по умолчанию. Если значение false, saCL был явно указан пользователем. Метод сохраняет это значение в флаге SECURITY_DESCRIPTOR_CONTROL
SE_SACL_DEFAULTED структуры. Если этот параметр не указан, флаг SE_SACL_DEFAULTED очищается.
Возвращаемое значение
Возвращает значение true, если операция выполнена успешно; в противном случае — значение false.
CSecurityDesc::ToString
Преобразует дескриптор безопасности в строковый формат.
bool ToString(
CString* pstr, SECURITY_INFORMATION si = OWNER_SECURITY_INFORMATION |
GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION |
SACL_SECURITY_INFORMATION) const throw(...);
Параметры
pstr
Указатель на строку, завершающую значение NULL, которая получит дескриптор безопасности в формате строки.
си
Указывает сочетание битовых флагов SECURITY_INFORMATION, чтобы указать компоненты дескриптора безопасности, которые необходимо включить в выходную строку.
Возвращаемое значение
Возвращает значение true, если операция выполнена успешно; в противном случае — значение false.
Замечания
После того как дескриптор безопасности находится в строковом формате, его можно легко хранить или передавать. CSecurityDesc::FromString
Используйте метод для преобразования строки обратно в дескриптор безопасности.
Параметр si может содержать следующие флаги SECURITY_INFORMATION:
Значение | Значение |
---|---|
OWNER_SECURITY_INFORMATION | Включите владельца. |
GROUP_SECURITY_INFORMATION | Включите основную группу. |
DACL_SECURITY_INFORMATION | Включите DACL. |
SACL_SECURITY_INFORMATION | Включите SACL. |
Если значение DACL равно NULL, а бит управления SE_DACL_PRESENT задан в дескрипторе безопасности ввода, метод завершается ошибкой.
Если значение DACL равно NULL, а бит управления SE_DACL_PRESENT не задан в дескрипторе входной безопасности, результирующая строка дескриптора безопасности не имеет компонента D: . Дополнительные сведения см. в разделе "Формат строки дескриптора безопасности".
Этот метод вызывает ConvertStringSecurityDescriptorToSecurityDescriptor.
См. также
Пример безопасности
SECURITY_DESCRIPTOR
Общие сведения о классе
Глобальные функции безопасности