Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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