Compartir a través de


Clase CTokenPrivileges

Esta clase es un contenedor de la estructura TOKEN_PRIVILEGES.

Importante

Esta clase y sus miembros no se pueden usar en las aplicaciones que se ejecutan en Windows Runtime.

Sintaxis

class CTokenPrivileges

Miembros

Constructores públicos

Nombre Descripción
CTokenPrivileges::CTokenPrivileges Constructor .
CTokenPrivileges::~CTokenPrivileges El destructor .

Métodos públicos

Nombre Descripción
CTokenPrivileges::Add Agrega uno o más privilegios al objeto CTokenPrivileges.
CTokenPrivileges::Delete Elimina un privilegio del objeto CTokenPrivileges.
CTokenPrivileges::DeleteAll Elimina todos los privilegios del objeto CTokenPrivileges.
CTokenPrivileges::GetCount Devuelve el número de entradas de privilegio del objeto CTokenPrivileges.
CTokenPrivileges::GetDisplayNames Recupera los nombres para mostrar de los privilegios contenidos en el objeto CTokenPrivileges.
CTokenPrivileges::GetLength Devuelve el tamaño del búfer en los bytes necesarios para contener la estructura TOKEN_PRIVILEGES representada por el objeto CTokenPrivileges.
CTokenPrivileges::GetLuidsAndAttributes Recupera los identificadores que son únicos localmente (LUID) y las marcas de atributo del objeto CTokenPrivileges.
CTokenPrivileges::GetNamesAndAttributes Recupera los nombres de privilegios y las marcas de atributo del objeto CTokenPrivileges.
CTokenPrivileges::GetPTOKEN_PRIVILEGES Devuelve un puntero a la estructura TOKEN_PRIVILEGES.
CTokenPrivileges::LookupPrivilege Recupera el atributo asociado a un nombre de privilegio determinado.

Operadores públicos

Nombre Descripción
CTokenPrivileges::operator const TOKEN_PRIVILEGES * Convierte un valor en un puntero a la estructura TOKEN_PRIVILEGES.
CTokenPrivileges::operator = Operador de asignación.

Comentarios

Un token de acceso es un objeto que describe el contexto de seguridad de un proceso o subproceso y que se asigna a cada usuario que ha iniciado sesión en un sistema Windows.

El token de acceso se usa para describir los distintos privilegios de seguridad concedidos a cada usuario. Un privilegio consta de un número de 64 bits denominado identificador único local (LUID) y una cadena de descriptor.

La clase CTokenPrivileges es un contenedor para la estructura TOKEN_PRIVILEGES y contiene 0 o más privilegios. Los privilegios se pueden agregar, eliminar o consultar mediante los métodos de clase proporcionados.

Para una introducción al modelo de control de acceso en Windows, consulte Control de acceso en Windows SDK.

Requisitos

Encabezado: atlsecurity.h

CTokenPrivileges::Add

Agrega uno o más privilegios al objeto de token de acceso CTokenPrivileges.

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

Parámetros

pszPrivilege
Puntero a una cadena terminada en null que especifica el nombre del privilegio, tal y como se define en el archivo de encabezado WINNT.H.

bEnable
Si es “true”, el privilegio está habilitado. Si es “false”, el privilegio está deshabilitado.

rPrivileges
Hace referencia a una estructura TOKEN_PRIVILEGES. Los privilegios y atributos se copian de esta estructura y se agregan al objeto CTokenPrivileges.

Valor devuelto

La primera forma de este método devuelve “true” si los privilegios se agregan correctamente; de lo contrario, devuelve “false”.

CTokenPrivileges::CTokenPrivileges

Constructor .

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

Parámetros

rhs
El objeto CTokenPrivileges que se va a asignar al nuevo objeto.

rPrivileges
La estructura TOKEN_PRIVILEGES que se va a asignar al nuevo objeto CTokenPrivileges.

Comentarios

Opcionalmente, el objeto CTokenPrivileges se puede crear mediante una estructura TOKEN_PRIVILEGES o un objeto CTokenPrivileges definido previamente.

CTokenPrivileges::~CTokenPrivileges

El destructor .

virtual ~CTokenPrivileges() throw();

Comentarios

El destructor libera todos los recursos asignados.

CTokenPrivileges::Delete

Elimina un privilegio del objeto de token de acceso CTokenPrivileges.

bool Delete(LPCTSTR pszPrivilege) throw();

Parámetros

pszPrivilege
Puntero a una cadena terminada en null que especifica el nombre del privilegio, tal y como se define en el archivo de encabezado WINNT.H. Por ejemplo, este parámetro podría especificar la constante SE_SECURITY_NAME o su cadena correspondiente, "SeSecurityPrivilege".

Valor devuelto

Devuelve “true” si el privilegio se eliminó correctamente; de lo contrario, devuelve “false”.

Comentarios

Este método es útil como herramienta para crear tokens restringidos.

CTokenPrivileges::DeleteAll

Elimina todos los privilegios del objeto de token de acceso CTokenPrivileges.

void DeleteAll() throw();

Comentarios

Elimina todos los privilegios contenidos en el objeto de token de acceso CTokenPrivileges.

CTokenPrivileges::GetDisplayNames

Recupera los nombres para mostrar de los privilegios contenidos en el objeto de token de acceso CTokenPrivileges.

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

Parámetros

pDisplayNames
Puntero a una matriz de objetos CString. CNames se define como una typedef: CTokenPrivileges::CAtlArray<CString>.

Comentarios

El parámetro pDisplayNames es un puntero a una matriz de objetos CString que recibirá los nombres para mostrar correspondientes a los privilegios contenidos en el objeto CTokenPrivileges. Este método recupera nombres para mostrar solo para los privilegios especificados en la sección Privilegios definidos de WINNT.H.

Este método recupera un nombre que se puede mostrar: por ejemplo, si el nombre del atributo es SE_REMOTE_SHUTDOWN_NAME, el nombre que se puede mostrar es "Forzar apagado desde un sistema remoto". Para obtener el nombre del sistema, use CTokenPrivileges::GetNamesAndAttributes.

CTokenPrivileges::GetCount

Devuelve el número de entradas de privilegio del objeto CTokenPrivileges.

UINT GetCount() const throw();

Valor devuelto

Devuelve el número de privilegios contenidos en el objeto CTokenPrivileges.

CTokenPrivileges::GetLength

Devuelve la longitud del objeto CTokenPrivileges.

UINT GetLength() const throw();

Valor devuelto

Devuelve el número de bytes necesarios para contener una estructura TOKEN_PRIVILEGES representada por el objeto CTokenPrivileges, incluidas todas las entradas de privilegio que contiene.

CTokenPrivileges::GetLuidsAndAttributes

Recupera los identificadores que son únicos localmente (LUID) y las marcas de atributo del objeto CTokenPrivileges.

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

Parámetros

pPrivileges
Puntero a una matriz de objetos LUID. CLUIDArray es una typedef definida como CAtlArray<LUID> CLUIDArray.

pAttributes
Puntero a una matriz de objetos DWORD. Si se omite este parámetro o es NULL, los atributos no se recuperan. CAttributes es una typedef definida como CAtlArray <DWORD> CAttributes.

Comentarios

Este método enumerará todos los privilegios contenidos en el objeto de token de acceso CTokenPrivileges, y colocará los LUID individuales y ,opcionalmente, las marcas de atributo en objetos de matriz.

CTokenPrivileges::GetNamesAndAttributes

Recupera el nombre y las marcas de atributo del objeto CTokenPrivileges.

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

Parámetros

pNames
Puntero a una matriz de objetos CString. CNames es una typedef definida como CAtlArray <CString> CNames.

pAttributes
Puntero a una matriz de objetos DWORD. Si se omite este parámetro o es NULL, los atributos no se recuperan. CAttributes es una typedef definida como CAtlArray <DWORD> CAttributes.

Comentarios

Este método enumerará todos los privilegios contenidos en el objeto CTokenPrivileges, colocando el nombre y (opcionalmente) las marcas de atributo en objetos de matriz.

Este método recupera el nombre del atributo, en lugar del nombre que se puede mostrar: por ejemplo, si el nombre del atributo es SE_REMOTE_SHUTDOWN_NAME, el nombre del sistema es "SeRemoteShutdownPrivilege". Para obtener el nombre que se puede mostrar, use el método CTokenPrivileges::GetDisplayNames.

CTokenPrivileges::GetPTOKEN_PRIVILEGES

Devuelve un puntero a la estructura TOKEN_PRIVILEGES.

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

Valor devuelto

Devuelve un puntero a la estructura TOKEN_PRIVILEGES.

CTokenPrivileges::LookupPrivilege

Recupera el atributo asociado a un nombre de privilegio determinado.

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

Parámetros

pszPrivilege
Puntero a una cadena terminada en null que especifica el nombre del privilegio, tal y como se define en el archivo de encabezado WINNT.H. Por ejemplo, este parámetro podría especificar la constante SE_SECURITY_NAME o su cadena correspondiente, "SeSecurityPrivilege".

pdwAttributes
Puntero a una variable que recibe los atributos.

Valor devuelto

Devuelve “true” si el atributo se recupera correctamente; de lo contrario, devuelve “false”.

CTokenPrivileges::operator =

Operador de asignación.

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

Parámetros

rPrivileges
La estructura TOKEN_PRIVILEGES que se va a asignar al objeto CTokenPrivileges.

rhs
El objeto CTokenPrivileges que se va a asignar al objeto.

Valor devuelto

Devuelve el objeto CTokenPrivileges actualizado.

CTokenPrivileges::operator const TOKEN_PRIVILEGES *

Convierte un valor en un puntero a la estructura TOKEN_PRIVILEGES.

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

Comentarios

Convierte un valor en un puntero a la estructura TOKEN_PRIVILEGES.

Consulte también

Ejemplo de seguridad
TOKEN_PRIVILEGES
LUID
LUID_AND_ATTRIBUTES
Información general sobre la clase
Funciones globales de seguridad