Compartir a través de


Función DuplicateToken (securitybaseapi.h)

La función DuplicateToken crea un nuevo token de acceso que duplica uno que ya existe.

Sintaxis

BOOL DuplicateToken(
  [in]  HANDLE                       ExistingTokenHandle,
  [in]  SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
  [out] PHANDLE                      DuplicateTokenHandle
);

Parámetros

[in] ExistingTokenHandle

Identificador de un token de acceso abierto con TOKEN_DUPLICATE acceso.

[in] ImpersonationLevel

Especifica un tipo de enumeración SECURITY_IMPERSONATION_LEVEL que proporciona el nivel de suplantación del nuevo token.

[out] DuplicateTokenHandle

Puntero a una variable que recibe un identificador para el token duplicado. Este identificador tiene TOKEN_IMPERSONATE y TOKEN_QUERY acceso al nuevo token.

Cuando haya terminado de usar el nuevo token, llame a la función CloseHandle para cerrar el identificador del token.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

La función DuplicateToken crea un token de suplantación, que puede usar en funciones como SetThreadToken y ImpersonateLoggedOnUser. El token creado por DuplicateToken no se puede usar en la función CreateProcessAsUser , que requiere un token principal. Para crear un token que pueda pasar a CreateProcessAsUser, use la función DuplicateTokenEx .

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado securitybaseapi.h (incluya Windows.h)
Library Advapi32.lib
Archivo DLL Advapi32.dll

Consulte también

Información general del control de acceso

Funciones básicas de Access Control

CreateProcessAsUser

DuplicateTokenEx

ImpersonateLoggedOnUser

SECURITY_IMPERSONATION_LEVEL

SetThreadToken