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