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 el parámetro ServerThread no tenía suficientes derechos de acceso 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. |
Comentarios
SeImpersonateClientEx se usa para hacer que un subproceso suplanta a un usuario. Se supone que el contexto de seguridad del cliente en ClientContext está actualizado.
Es extremadamente no seguro generar el estado de privilegio de un subproceso de usuario que no es de confianza (tome el subproceso de un usuario y suplantar LocalSystem, por ejemplo). Si un subproceso de usuario que no es de confianza tiene su privilegio, el usuario podría tomar el token de subproceso después de que se haya elevado y subvertido la seguridad de todo el sistema.
En los casos en los que se requiere un estado de privilegio mayor, la tarea se debe enviar a una cola de trabajo donde el subproceso de trabajo del sistema puede controlar la tarea de forma segura. De este modo, no es necesario suplantar.
Para finalizar la suplantación del usuario, llame a la rutina SeStopImpersonatingClient .
La rutina PsImpersonateClient 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 | Value |
---|---|
Cliente mínimo compatible | Windows 2000 |
Plataforma de destino | Universal |
Encabezado | ntifs.h (incluya Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |