Класс CTokenPrivileges
Этот класс представляет собой оболочку для TOKEN_PRIVILEGES
структуры.
Внимание
Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.
Синтаксис
class CTokenPrivileges
Участники
Открытые конструкторы
Имя | Описание |
---|---|
CTokenPrivileges::CTokenPrivileges | Конструктор. |
CTokenPrivileges::~CTokenPrivileges | Деструктор |
Открытые методы
Имя | Описание |
---|---|
CTokenPrivileges::Add | Добавляет в объект один или несколько привилегий CTokenPrivileges . |
CTokenPrivileges::D elete | Удаляет привилегии CTokenPrivileges из объекта. |
CTokenPrivileges::D eleteAll | Удаляет все привилегии из CTokenPrivileges объекта. |
CTokenPrivileges::GetCount | Возвращает количество записей привилегий в объекте CTokenPrivileges . |
CTokenPrivileges::GetDisplayNames | Извлекает отображаемые имена привилегий, содержащихся в объекте CTokenPrivileges . |
CTokenPrivileges::GetLength | Возвращает размер буфера в байтах, необходимый для хранения TOKEN_PRIVILEGES структуры, представленной CTokenPrivileges объектом. |
CTokenPrivileges::GetLuidsAndAttributes | Извлекает локальные уникальные идентификаторы (LUID) и флаги атрибутов из CTokenPrivileges объекта. |
CTokenPrivileges::GetNamesAndAttributes | Извлекает имена привилегий и флаги атрибутов из CTokenPrivileges объекта. |
CTokenPrivileges::GetPTOKEN_PRIVILEGES | Возвращает указатель на структуру TOKEN_PRIVILEGES . |
CTokenPrivileges::LookupPrivilege | Извлекает атрибут, связанный с заданным именем привилегий. |
Открытые операторы
Имя | Описание |
---|---|
CTokenPrivileges::operator const TOKEN_PRIVILEGES * | Приведение значения к указателю на структуру TOKEN_PRIVILEGES . |
CTokenPrivileges::operator = | Оператор присвоения. |
Замечания
Маркер доступа — это объект, описывающий контекст безопасности процесса или потока и выделенный каждому пользователю, вошедшему в систему Windows.
Маркер доступа используется для описания различных привилегий безопасности, предоставленных каждому пользователю. Привилегия состоит из 64-разрядного номера, называемого локально уникальным идентификатором ( LUID) и строкой дескриптора.
Класс CTokenPrivileges
представляет собой оболочку для структуры TOKEN_PRIVILEGES и содержит 0 или более привилегий. Привилегии можно добавлять, удалять или запрашивать с помощью предоставленных методов класса.
Общие сведения о модели управления доступом в Windows см. в контроль доступа в пакете SDK для Windows.
Требования
Заголовок: atlsecurity.h
CTokenPrivileges::Add
Добавляет один или несколько привилегий в объект маркера CTokenPrivileges
доступа.
bool Add(LPCTSTR pszPrivilege, bool bEnable) throw(...);
void Add(const TOKEN_PRIVILEGES& rPrivileges) throw(...);
Параметры
pszPrivilege
Указатель на строку, завершающую значение NULL, которая указывает имя привилегии, как определено в WINNT. Файл заголовка H.
bEnable
Если задано значение true, привилегия включена. Если значение false, привилегия отключена.
rPrivileges
Ссылка на структуру TOKEN_PRIVILEGES . Привилегии и атрибуты копируются из этой структуры и добавляются в CTokenPrivileges
объект.
Возвращаемое значение
Первая форма этого метода возвращает значение true, если привилегии успешно добавлены, значение false в противном случае.
CTokenPrivileges::CTokenPrivileges
Конструктор.
CTokenPrivileges() throw();
CTokenPrivileges(const CTokenPrivileges& rhs) throw(... );
CTokenPrivileges(const TOKEN_PRIVILEGES& rPrivileges) throw(...);
Параметры
rhs
Объект CTokenPrivileges
, назначаемый новому объекту.
rPrivileges
Структура TOKEN_PRIVILEGES , назначаемая новому CTokenPrivileges
объекту.
Замечания
Объект CTokenPrivileges
можно создать при необходимости с помощью TOKEN_PRIVILEGES
структуры или ранее определенного CTokenPrivileges
объекта.
CTokenPrivileges::~CTokenPrivileges
Деструктор
virtual ~CTokenPrivileges() throw();
Замечания
Деструктор освобождает все выделенные ресурсы.
CTokenPrivileges::D elete
Удаляет привилегии из объекта маркера CTokenPrivileges
доступа.
bool Delete(LPCTSTR pszPrivilege) throw();
Параметры
pszPrivilege
Указатель на строку, завершающую значение NULL, которая указывает имя привилегии, как определено в WINNT. Файл заголовка H. Например, этот параметр может указать константу SE_SECURITY_NAME или соответствующую строку SeSecurityPrivilege.
Возвращаемое значение
Возвращает значение true, если привилегия была успешно удалена, значение false в противном случае.
Замечания
Этот метод полезен в качестве средства для создания ограниченных маркеров.
CTokenPrivileges::D eleteAll
Удаляет все привилегии из объекта маркера CTokenPrivileges
доступа.
void DeleteAll() throw();
Замечания
Удаляет все привилегии, содержащиеся в объекте маркера CTokenPrivileges
доступа.
CTokenPrivileges::GetDisplayNames
Извлекает отображаемые имена привилегий, содержащихся в объекте CTokenPrivileges
маркера доступа.
void GetDisplayNames(CNames* pDisplayNames) const throw(...);
Параметры
pDisplayNames
Указатель на массив объектов CString
. CNames
определяется как типdef: CTokenPrivileges::CAtlArray<CString>
.
Замечания
Параметр pDisplayNames
— это указатель на массив CString
объектов, который получит отображаемые имена, соответствующие привилегиям, содержащимся в объекте CTokenPrivileges
. Этот метод извлекает отображаемые имена только для привилегий, указанных в разделе "Определенные привилегии" WINNT.H.
Этот метод получает отображаемое имя: например, если имя атрибута SE_REMOTE_SHUTDOWN_NAME, отображаемое имя — "Принудительное завершение работы из удаленной системы". Чтобы получить имя системы, используйте CTokenPrivileges::GetNamesAndAttributes.
CTokenPrivileges::GetCount
Возвращает количество записей привилегий в объекте CTokenPrivileges
.
UINT GetCount() const throw();
Возвращаемое значение
Возвращает количество привилегий, содержащихся в объекте CTokenPrivileges
.
CTokenPrivileges::GetLength
Возвращает длину CTokenPrivileges
объекта.
UINT GetLength() const throw();
Возвращаемое значение
Возвращает количество байтов, необходимых для хранения TOKEN_PRIVILEGES
структуры, представленной CTokenPrivileges
объектом, включая все записи привилегий, которые он содержит.
CTokenPrivileges::GetLuidsAndAttributes
Извлекает локальные уникальные идентификаторы (LUID) и флаги атрибутов из CTokenPrivileges
объекта.
void GetLuidsAndAttributes(
CLUIDArray* pPrivileges,
CAttributes* pAttributes = NULL) const throw(...);
Параметры
pPrivileges
Указатель на массив объектов LUID . CLUIDArray
— типdef, определенный как CAtlArray<LUID> CLUIDArray
.
pAttributes
Указатель на массив объектов DWORD. Если этот параметр опущен или null, атрибуты не извлекаются. CAttributes
— типdef, определенный как CAtlArray <DWORD> CAttributes
.
Замечания
Этот метод перечисляет все привилегии, содержащиеся в объекте CTokenPrivileges
маркера доступа, и помещает отдельные идентификаторы LUID и (необязательно) флаги атрибутов в объекты массива.
CTokenPrivileges::GetNamesAndAttributes
Извлекает флаги имени и атрибута из CTokenPrivileges
объекта.
void GetNamesAndAttributes(
CNames* pNames,
CAttributes* pAttributes = NULL) const throw(...);
Параметры
pNames
Указатель на массив CString
объектов. CNames
— типdef, определенный как CAtlArray <CString> CNames
.
pAttributes
Указатель на массив объектов DWORD. Если этот параметр опущен или null, атрибуты не извлекаются. CAttributes
— типdef, определенный как CAtlArray <DWORD> CAttributes
.
Замечания
Этот метод перечисляет все привилегии, содержащиеся в объекте CTokenPrivileges
, помещая имя и (необязательно) флаги атрибутов в объекты массива.
Этот метод извлекает имя атрибута, а не отображаемое имя: например, если имя атрибута SE_REMOTE_SHUTDOWN_NAME, системное имя — SeRemoteShutdownPrivilege. Чтобы получить отображаемое имя, используйте метод CTokenPrivileges::GetDisplayNames.
CTokenPrivileges::GetPTOKEN_PRIVILEGES
Возвращает указатель на структуру TOKEN_PRIVILEGES
.
const TOKEN_PRIVILEGES* GetPTOKEN_PRIVILEGES() const throw(...);
Возвращаемое значение
Возвращает указатель на структуру TOKEN_PRIVILEGES .
CTokenPrivileges::LookupPrivilege
Извлекает атрибут, связанный с заданным именем привилегий.
bool LookupPrivilege(
LPCTSTR pszPrivilege,
DWORD* pdwAttributes = NULL) const throw(...);
Параметры
pszPrivilege
Указатель на строку, завершающую значение NULL, которая указывает имя привилегии, как определено в WINNT. Файл заголовка H. Например, этот параметр может указать константу SE_SECURITY_NAME или соответствующую строку SeSecurityPrivilege.
pdwAttributes
Указатель на переменную, которая получает атрибуты.
Возвращаемое значение
Возвращает значение true, если атрибут успешно получен, значение false в противном случае.
CTokenPrivileges::operator =
Оператор присвоения.
CTokenPrivileges& operator= (const TOKEN_PRIVILEGES& rPrivileges) throw(...);
CTokenPrivileges& operator= (const CTokenPrivileges& rhs) throw(...);
Параметры
rPrivileges
Структура TOKEN_PRIVILEGES , назначаемая объекту CTokenPrivileges
.
rhs
Объект CTokenPrivileges
, назначаемый объекту.
Возвращаемое значение
Возвращает обновленный CTokenPrivileges
объект.
CTokenPrivileges::operator const TOKEN_PRIVILEGES *
Приведение значения к указателю на структуру TOKEN_PRIVILEGES
.
operator const TOKEN_PRIVILEGES *() const throw(...);
Замечания
Приведение значения к указателю на структуру TOKEN_PRIVILEGES .
См. также
Пример безопасности
TOKEN_PRIVILEGES
LUID
LUID_AND_ATTRIBUTES
Общие сведения о классе
Глобальные функции безопасности