Classe CTokenPrivileges

Questa classe è un wrapper per la TOKEN_PRIVILEGES struttura.

Importante

Questa classe e i relativi membri non possono essere usati nelle applicazioni eseguite in Windows Runtime.

Sintassi

class CTokenPrivileges

Membri

Costruttori pubblici

Nome Descrizione
CTokenPrivileges::CTokenPrivileges Costruttore.
CTokenPrivileges::~CTokenPrivileges Distruttore.

Metodi pubblici

Nome Descrizione
CTokenPrivileges::Add Aggiunge uno o più privilegi all'oggetto CTokenPrivileges .
CTokenPrivileges::D elete Elimina un privilegio dall'oggetto CTokenPrivileges .
CTokenPrivileges::D eleteAll Elimina tutti i privilegi dall'oggetto CTokenPrivileges .
CTokenPrivileges::GetCount Restituisce il numero di voci di privilegio nell'oggetto CTokenPrivileges .
CTokenPrivileges::GetDisplayNames Recupera i nomi visualizzati per i privilegi contenuti nell'oggetto CTokenPrivileges .
CTokenPrivileges::GetLength Restituisce le dimensioni del buffer in byte necessarie per contenere la TOKEN_PRIVILEGES struttura rappresentata dall'oggetto CTokenPrivileges .
CTokenPrivileges::GetLuidsAndAttributes Recupera gli identificatori univoci locali (LUID) e i flag di attributo dall'oggetto CTokenPrivileges .
CTokenPrivileges::GetNamesAndAttributes Recupera i nomi dei privilegi e i flag di attributo dall'oggetto CTokenPrivileges .
CTokenPrivileges::GetPTOKEN_PRIVILEGES Restituisce un puntatore alla TOKEN_PRIVILEGES struttura.
CTokenPrivileges::LookupPrivilege Recupera l'attributo associato a un determinato nome di privilegio.

Operatori pubblici

Nome Descrizione
CTokenPrivileges::operator const TOKEN_PRIVILEGES * Esegue il cast di un valore a un puntatore alla TOKEN_PRIVILEGES struttura.
CTokenPrivileges::operator = Operatore di assegnazione.

Osservazioni:

Un token di accesso è un oggetto che descrive il contesto di sicurezza di un processo o di un thread e viene allocato a ogni utente connesso a un sistema Windows.

Il token di accesso viene usato per descrivere i vari privilegi di sicurezza concessi a ogni utente. Un privilegio è costituito da un numero a 64 bit denominato identificatore univoco locale ( LUID) e una stringa del descrittore.

La CTokenPrivileges classe è un wrapper per la struttura TOKEN_PRIVILEGES e contiene 0 o più privilegi. I privilegi possono essere aggiunti, eliminati o sottoposti a query usando i metodi della classe forniti.

Per un'introduzione al modello di controllo di accesso in Windows, vedere Controllo di accesso in Windows SDK.

Requisiti

Intestazione: atlsecurity.h

CTokenPrivileges::Add

Aggiunge uno o più privilegi all'oggetto CTokenPrivileges token di accesso.

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

Parametri

pszPrivilege
Puntatore a una stringa con terminazione Null che specifica il nome del privilegio, come definito in WINNT. File di intestazione H.

bEnable
Se true, il privilegio è abilitato. Se false, il privilegio è disabilitato.

rPrivileges
Riferimento a una struttura TOKEN_PRIVILEGES . I privilegi e gli attributi vengono copiati da questa struttura e aggiunti all'oggetto CTokenPrivileges .

Valore restituito

La prima forma di questo metodo restituisce true se i privilegi vengono aggiunti correttamente, false in caso contrario.

CTokenPrivileges::CTokenPrivileges

Costruttore.

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

Parametri

rhs
Oggetto CTokenPrivileges da assegnare al nuovo oggetto.

rPrivileges
Struttura TOKEN_PRIVILEGES da assegnare al nuovo CTokenPrivileges oggetto.

Osservazioni:

L'oggetto CTokenPrivileges può essere creato facoltativamente utilizzando una TOKEN_PRIVILEGES struttura o un oggetto definito CTokenPrivileges in precedenza.

CTokenPrivileges::~CTokenPrivileges

Distruttore.

virtual ~CTokenPrivileges() throw();

Osservazioni:

Il distruttore libera tutte le risorse allocate.

CTokenPrivileges::D elete

Elimina un privilegio dall'oggetto CTokenPrivileges token di accesso.

bool Delete(LPCTSTR pszPrivilege) throw();

Parametri

pszPrivilege
Puntatore a una stringa con terminazione Null che specifica il nome del privilegio, come definito in WINNT. File di intestazione H. Ad esempio, questo parametro può specificare la costante SE_SECURITY_NAME o la stringa corrispondente, "SeSecurityPrivilege".

Valore restituito

Restituisce true se il privilegio è stato eliminato correttamente, false in caso contrario.

Osservazioni:

Questo metodo è utile come strumento per la creazione di token con restrizioni.

CTokenPrivileges::D eleteAll

Elimina tutti i privilegi dall'oggetto CTokenPrivileges token di accesso.

void DeleteAll() throw();

Osservazioni:

Elimina tutti i privilegi contenuti nell'oggetto CTokenPrivileges token di accesso.

CTokenPrivileges::GetDisplayNames

Recupera i nomi visualizzati per i privilegi contenuti nell'oggetto CTokenPrivileges token di accesso.

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

Parametri

pDisplayNames
Puntatore a una matrice di oggetti CString. CNames è definito come typedef: CTokenPrivileges::CAtlArray<CString>.

Osservazioni:

Il parametro pDisplayNames è un puntatore a una matrice di CString oggetti che riceverà i nomi visualizzati corrispondenti ai privilegi contenuti nell'oggetto CTokenPrivileges . Questo metodo recupera i nomi visualizzati solo per i privilegi specificati nella sezione Privilegi definiti di WINNT.H.

Questo metodo recupera un nome visualizzabile: ad esempio, se il nome dell'attributo è SE_REMOTE_SHUTDOWN_NAME, il nome visualizzabile è "Forza arresto da un sistema remoto". Per ottenere il nome di sistema, usare CTokenPrivileges::GetNamesAndAttributes.

CTokenPrivileges::GetCount

Restituisce il numero di voci di privilegio nell'oggetto CTokenPrivileges .

UINT GetCount() const throw();

Valore restituito

Restituisce il numero di privilegi contenuti nell'oggetto CTokenPrivileges .

CTokenPrivileges::GetLength

Restituisce la lunghezza dell'oggetto CTokenPrivileges .

UINT GetLength() const throw();

Valore restituito

Restituisce il numero di byte necessari per contenere una TOKEN_PRIVILEGES struttura rappresentata dall'oggetto CTokenPrivileges , incluse tutte le voci dei privilegi contenute.

CTokenPrivileges::GetLuidsAndAttributes

Recupera gli identificatori univoci locali (LUID) e i flag di attributo dall'oggetto CTokenPrivileges .

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

Parametri

pPrivileges
Puntatore a una matrice di oggetti LUID . CLUIDArray è un typedef definito come CAtlArray<LUID> CLUIDArray.

pAttributes
Puntatore a una matrice di oggetti DWORD. Se questo parametro viene omesso o NULL, gli attributi non vengono recuperati. CAttributes è un typedef definito come CAtlArray <DWORD> CAttributes.

Osservazioni:

Questo metodo enumera tutti i privilegi contenuti nell'oggetto CTokenPrivileges token di accesso e inserisce i singoli LUID e (facoltativamente) i flag di attributo in oggetti matrice.

CTokenPrivileges::GetNamesAndAttributes

Recupera il nome e i flag di attributo dall'oggetto CTokenPrivileges .

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

Parametri

pNames
Puntatore a una matrice di CString oggetti. CNames è un typedef definito come CAtlArray <CString> CNames.

pAttributes
Puntatore a una matrice di oggetti DWORD. Se questo parametro viene omesso o NULL, gli attributi non vengono recuperati. CAttributes è un typedef definito come CAtlArray <DWORD> CAttributes.

Osservazioni:

Questo metodo enumererà tutti i privilegi contenuti nell'oggetto CTokenPrivileges , inserendo il nome e (facoltativamente) i flag di attributo in oggetti matrice.

Questo metodo recupera il nome dell'attributo anziché il nome visualizzato, ad esempio se il nome dell'attributo è SE_REMOTE_SHUTDOWN_NAME, il nome di sistema è "SeRemoteShutdownPrivilege". Per ottenere il nome visualizzato, usare il metodo CTokenPrivileges::GetDisplayNames.

CTokenPrivileges::GetPTOKEN_PRIVILEGES

Restituisce un puntatore alla TOKEN_PRIVILEGES struttura.

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

Valore restituito

Restituisce un puntatore alla struttura TOKEN_PRIVILEGES .

CTokenPrivileges::LookupPrivilege

Recupera l'attributo associato a un determinato nome di privilegio.

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

Parametri

pszPrivilege
Puntatore a una stringa con terminazione Null che specifica il nome del privilegio, come definito in WINNT. File di intestazione H. Ad esempio, questo parametro può specificare la costante SE_SECURITY_NAME o la stringa corrispondente, "SeSecurityPrivilege".

pdwAttributes
Puntatore a una variabile che riceve gli attributi.

Valore restituito

Restituisce true se l'attributo viene recuperato correttamente, false in caso contrario.

CTokenPrivileges::operator =

Operatore di assegnazione.

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

Parametri

rPrivileges
Struttura TOKEN_PRIVILEGES da assegnare all'oggetto CTokenPrivileges .

rhs
Oggetto CTokenPrivileges da assegnare all'oggetto .

Valore restituito

Restituisce l'oggetto aggiornato CTokenPrivileges .

CTokenPrivileges::operator const TOKEN_PRIVILEGES *

Esegue il cast di un valore a un puntatore alla TOKEN_PRIVILEGES struttura.

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

Osservazioni:

Esegue il cast di un valore a un puntatore alla struttura TOKEN_PRIVILEGES .

Vedi anche

Esempio di sicurezza
TOKEN_PRIVILEGES
LUID
LUID_AND_ATTRIBUTES
Cenni preliminari sulla classe
Funzioni globali di sicurezza