Función SeImpersonateClientEx (ntifs.h)
La rutina SeImpersonateClientEx hace que un subproceso suplanta a un usuario.
Sintaxis
NTSTATUS SeImpersonateClientEx(
[in] PSECURITY_CLIENT_CONTEXT ClientContext,
[in, optional] PETHREAD ServerThread
);
Parámetros
[in] ClientContext
Puntero al contexto de cliente de seguridad del usuario.
[in, optional] ServerThread
Puntero al subproceso que se va a suplantar al usuario. Si no se especifica, se usa el subproceso que realiza la llamada.
Valor devuelto
SeImpersonateClientEx devuelve un valor NTSTATUS adecuado, como el siguiente:
Código devuelto | Descripción |
---|---|
|
El intento de suplantación se realizó correctamente. |
|
El subproceso especificado en parámetro ServerThread no tenía derechos de acceso suficientes para suplantar al usuario cuyo contexto de cliente de seguridad se especifica en el parámetro ClientContext. |
|
SeImpersonateClientEx encontró un error de asignación de grupo al asignar memoria para la estructura de información de suplantación. |
Observaciones
SeImpersonateClientEx se usa para hacer que un subproceso suplantar a un usuario. Se supone que el contexto de seguridad de cliente de clientContext está actualizado.
Es extremadamente seguro aumentar el estado de privilegio de un subproceso de usuario que no es de confianza (tome el subproceso de un usuario y suplanta localSystem, por ejemplo). Si se ha generado un subproceso de usuario que no es de confianza, el usuario podría tomar el token de subproceso después de haber sido elevado y subvertir la seguridad de todo el sistema.
En los casos en los que se requiera un estado de privilegio mayor, la tarea debe enviarse a una cola de trabajo donde la tarea se pueda controlar de forma segura mediante el subproceso de trabajo del sistema. De esta manera no es necesaria ninguna suplantación.
Para finalizar la suplantación del usuario, llame a la rutina SeStopImpersonatingClient.
La rutina psImpersonateClient de se puede usar para hacer que un subproceso de servidor suplantar a un cliente.
Para obtener más información sobre la seguridad y el control de acceso, consulte modelo de seguridad de Windows para desarrolladores de controladores y la documentación sobre estos temas en Windows SDK.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 2000 |
de la plataforma de destino de | Universal |
encabezado de | ntifs.h (incluya Ntifs.h) |
biblioteca de | NtosKrnl.lib |
DLL de | NtosKrnl.exe |
irQL | PASSIVE_LEVEL |