Funzione DuplicateToken (securitybaseapi.h)

La funzione DuplicateToken crea un nuovo token di accesso che duplica già esistente.

Sintassi

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

Parametri

[in] ExistingTokenHandle

Handle a un token di accesso aperto con l'accesso TOKEN_DUPLICATE.

[in] ImpersonationLevel

Specifica un tipo SECURITY_IMPERSONATION_LEVEL enumerato che fornisce il livello di rappresentazione del nuovo token.

[out] DuplicateTokenHandle

Puntatore a una variabile che riceve un handle per il token duplicato. Questo handle ha TOKEN_IMPERSONATE e TOKEN_QUERY accesso al nuovo token.

Al termine dell'uso del nuovo token, chiamare la funzione CloseHandle per chiudere l'handle del token.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

La funzione DuplicateToken crea un token di rappresentazione, che è possibile usare in funzioni come SetThreadToken e ImpersonateLoggedOnUser. Il token creato da DuplicateToken non può essere usato nella funzione CreateProcessAsUser , che richiede un token primario. Per creare un token che è possibile passare a CreateProcessAsUser, usare la funzione DuplicateTokenEx .

Requisiti

Requisito Valore
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione securitybaseapi.h (include Windows.h)
Libreria Advapi32.lib
DLL Advapi32.dll

Vedi anche

Panoramica Controllo di accesso

Funzioni di base Controllo di accesso

Createprocessasuser

DuplicateTokenEx

Rappresentazione diLoggedOnUser

SECURITY_IMPERSONATION_LEVEL

SetThreadToken