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