Partilhar via


Classe CTokenPrivileges

Observação

A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Esta classe é um envelope para a TOKEN_PRIVILEGES estrutura.

Importante

Esta classe e os seus membros não podem ser usados em aplicações que sejam executadas no Windows Runtime.

Sintaxe

class CTokenPrivileges

Membros

Construtores Públicos

Nome Description
CTokenPrivileges::CTokenPrivileges O construtor.
CTokenPrivileges::~CTokenPrivileges O destruidor.

Métodos Públicos

Nome Description
CTokenPrivileges::Adicionar Adiciona um ou mais privilégios ao CTokenPrivileges objeto.
CTokenPrivileges::D elete Elimina um privilégio do CTokenPrivileges objeto.
CTokenPrivileges::D eleteAll Apaga todos os privilégios do CTokenPrivileges objeto.
CTokenPrivileges::GetCount Devolve o número de entradas de privilégio no CTokenPrivileges objeto.
CTokenPrivileges::GetDisplayNames Recupera nomes de exibição para os privilégios contidos no CTokenPrivileges objeto.
CTokenPrivileges::GetLength Devolve o tamanho do buffer em bytes necessário para conter a TOKEN_PRIVILEGES estrutura representada pelo CTokenPrivileges objeto.
CTokenPrivileges::GetLuidsAndAttributes Recupera os identificadores localmente únicos (LUIDs) e os flags de atributos do CTokenPrivileges objeto.
CTokenPrivileges::GetNamesAndAttributes Recupera os nomes de privilégios e os flags de atributos do CTokenPrivileges objeto.
CTokenPrivileges::GetPTOKEN_PRIVILEGES Devolve um ponteiro para a TOKEN_PRIVILEGES estrutura.
CTokenPrivileges::LookupPrivilege Recupera o atributo associado a um dado nome de privilégio.

Operadores Públicos

Nome Description
CTokenPrivileges::operator const TOKEN_PRIVILEGES * Atribui um valor a um apontador para a TOKEN_PRIVILEGES estrutura.
CTokenPrivileges::operator = Operador de atribuição.

Observações

Um token de acesso é um objeto que descreve o contexto de segurança de um processo ou thread e é alocado a cada utilizador iniciado num sistema Windows.

O token de acesso é usado para descrever os vários privilégios de segurança concedidos a cada utilizador. Um privilégio consiste num número de 64 bits chamado identificador localmente único ( LUID) e numa cadeia de descritores.

A CTokenPrivileges classe é um wrapper para a estrutura TOKEN_PRIVILEGES e contém 0 ou mais privilégios. Os privilégios podem ser adicionados, eliminados ou consultados usando os métodos de classe fornecidos.

Para uma introdução ao modelo de controlo de acesso no Windows, veja Controlo de Acesso no SDK do Windows.

Requerimentos

Cabeçalho: atlsecurity.h

CTokenPrivileges::Adicionar

Adiciona um ou mais privilégios ao CTokenPrivileges objeto do token de acesso.

bool Add(LPCTSTR pszPrivilege, bool bEnable) throw(...);
void Add(const TOKEN_PRIVILEGES& rPrivileges) throw(...);

Parâmetros

pszPrivilege
Apontador para uma cadeia terminada por null que especifica o nome do privilégio, conforme definido no WINNT. Ficheiro de cabeçalho H.

bAtivar
Se for verdadeiro, o privilégio está ativado. Se for falso, o privilégio fica desativado.

rPrivilégios
Referência a uma estrutura TOKEN_PRIVILEGES . Os privilégios e atributos são copiados desta estrutura e adicionados ao CTokenPrivileges objeto.

Valor de retorno

A primeira forma deste método retorna verdadeira se os privilégios forem adicionados com sucesso, falsa caso contrário.

CTokenPrivileges::CTokenPrivileges

O construtor.

CTokenPrivileges() throw();
CTokenPrivileges(const CTokenPrivileges& rhs) throw(... );
CTokenPrivileges(const TOKEN_PRIVILEGES& rPrivileges) throw(...);

Parâmetros

RHS
O CTokenPrivileges objeto a atribuir ao novo objeto.

rPrivilégios
A estrutura TOKEN_PRIVILEGES a atribuir ao novo CTokenPrivileges objeto.

Observações

O CTokenPrivileges objeto pode ser criado opcionalmente usando uma TOKEN_PRIVILEGES estrutura ou um objeto previamente definido CTokenPrivileges .

CTokenPrivileges::~CTokenPrivileges

O destruidor.

virtual ~CTokenPrivileges() throw();

Observações

O destruidor liberta todos os recursos alocados.

CTokenPrivileges::D elete

Elimina um privilégio do CTokenPrivileges objeto token de acesso.

bool Delete(LPCTSTR pszPrivilege) throw();

Parâmetros

pszPrivilege
Apontador para uma cadeia terminada por null que especifica o nome do privilégio, conforme definido no WINNT. Ficheiro de cabeçalho H. Por exemplo, este parâmetro pode especificar a constante SE_SECURITY_NAME, ou a sua cadeia correspondente, "SeSecurityPrivilege."

Valor de retorno

Retorna true se o privilégio foi eliminado com sucesso, falso caso contrário.

Observações

Este método é útil como ferramenta para criar tokens restritos.

CTokenPrivileges::D eleteAll

Elimina todos os privilégios do CTokenPrivileges objeto token de acesso.

void DeleteAll() throw();

Observações

Apaga todos os privilégios contidos no CTokenPrivileges objeto token de acesso.

CTokenPrivileges::GetDisplayNames

Recupera os nomes de exibição dos privilégios contidos no CTokenPrivileges objeto do token de acesso.

void GetDisplayNames(CNames* pDisplayNames) const throw(...);

Parâmetros

pDisplayNames
Um apontador para um array de CString objetos. CNames é definido como uma def de tipo: CTokenPrivileges::CAtlArray<CString>.

Observações

O parâmetro pDisplayNames é um ponteiro para um array de CString objetos que receberá os nomes de exibição correspondentes aos privilégios contidos no CTokenPrivileges objeto. Este método recupera nomes de exibição apenas para os privilégios especificados na secção Privilégios Definidos do WINNT.H.

Este método recupera um nome exibível: por exemplo, se o nome do atributo for SE_REMOTE_SHUTDOWN_NAME, o nome exibível é "Forçar o desligamento a partir de um sistema remoto." Para obter o nome do sistema, use CTokenPrivileges::GetNamesAndAttributes.

CTokenPrivileges::GetCount

Devolve o número de entradas de privilégio no CTokenPrivileges objeto.

UINT GetCount() const throw();

Valor de retorno

Devolve o número de privilégios contidos no CTokenPrivileges objeto.

CTokenPrivileges::GetLength

Devolve o comprimento do CTokenPrivileges objeto.

UINT GetLength() const throw();

Valor de retorno

Devolve o número de bytes necessários para conter uma TOKEN_PRIVILEGES estrutura representada pelo CTokenPrivileges objeto, incluindo todas as entradas de privilégio que contém.

CTokenPrivileges::GetLuidsAndAttributes

Recupera os identificadores localmente únicos (LUIDs) e os flags de atributos do CTokenPrivileges objeto.

void GetLuidsAndAttributes(
    CLUIDArray* pPrivileges,
    CAttributes* pAttributes = NULL) const throw(...);

Parâmetros

pPrivilégios
Apontar para um array de objetos LUID . CLUIDArray é uma def de tipo definida como CAtlArray<LUID> CLUIDArray.

pAtributos
Apontar para um array de objetos DWORD. Se este parâmetro for omitido ou NULL, os atributos não são recuperados. CAttributes é uma def de tipo definida como CAtlArray <DWORD> CAttributes.

Observações

Este método enumerará todos os privilégios contidos no CTokenPrivileges objeto de token de acesso e colocará os LUIDs individuais e (opcionalmente) as flags de atributos nos objetos do array.

CTokenPrivileges::GetNamesAndAttributes

Recupera os flags de nome e atributo do CTokenPrivileges objeto.

void GetNamesAndAttributes(
    CNames* pNames,
    CAttributes* pAttributes = NULL) const throw(...);

Parâmetros

pNomes
Aponta para um array de CString objetos. CNames é uma def de tipo definida como CAtlArray <CString> CNames.

pAtributos
Apontar para um array de objetos DWORD. Se este parâmetro for omitido ou NULL, os atributos não são recuperados. CAttributes é uma def de tipo definida como CAtlArray <DWORD> CAttributes.

Observações

Este método irá enumerar todos os privilégios contidos no CTokenPrivileges objeto, colocando o nome e (opcionalmente) as flags de atributo nos objetos do array.

Este método recupera o nome do atributo, em vez do nome exibível: por exemplo, se o nome do atributo for SE_REMOTE_SHUTDOWN_NAME, o nome do sistema é "SeRemoteShutdownPrivilege." Para obter o nome exibível, utilize o método CTokenPrivileges::GetDisplayNames.

CTokenPrivileges::GetPTOKEN_PRIVILEGES

Devolve um ponteiro para a TOKEN_PRIVILEGES estrutura.

const TOKEN_PRIVILEGES* GetPTOKEN_PRIVILEGES() const throw(...);

Valor de retorno

Devolve um ponteiro para a estrutura TOKEN_PRIVILEGES .

CTokenPrivileges::LookupPrivilege

Recupera o atributo associado a um dado nome de privilégio.

bool LookupPrivilege(
    LPCTSTR pszPrivilege,
    DWORD* pdwAttributes = NULL) const throw(...);

Parâmetros

pszPrivilege
Apontador para uma cadeia terminada por null que especifica o nome do privilégio, conforme definido no WINNT. Ficheiro de cabeçalho H. Por exemplo, este parâmetro pode especificar a constante SE_SECURITY_NAME, ou a sua cadeia correspondente, "SeSecurityPrivilege."

pdwAttributes
Aponta para uma variável que recebe os atributos.

Valor de retorno

Retorna verdadeiro se o atributo for recuperado com sucesso, falso caso contrário.

CTokenPrivileges::operator =

Operador de atribuição.

CTokenPrivileges& operator= (const TOKEN_PRIVILEGES& rPrivileges) throw(...);
CTokenPrivileges& operator= (const CTokenPrivileges& rhs) throw(...);

Parâmetros

rPrivilégios
A estrutura TOKEN_PRIVILEGES a atribuir ao CTokenPrivileges objeto.

RHS
O CTokenPrivileges objeto a atribuir ao objeto.

Valor de retorno

Devolve o objeto atualizado CTokenPrivileges .

CTokenPrivileges::operator const TOKEN_PRIVILEGES *

Atribui um valor a um apontador para a TOKEN_PRIVILEGES estrutura.

operator const TOKEN_PRIVILEGES *() const throw(...);

Observações

Lança um valor para um ponteiro para a estrutura TOKEN_PRIVILEGES .

Consulte também

Exemplo de Segurança
TOKEN_PRIVILEGES
LUID
LUID_AND_ATTRIBUTES
Visão geral da classe
Funções Globais de Segurança