Função DuplicateTokenEx (securitybaseapi.h)
A função DuplicateTokenEx
Sintaxe
BOOL DuplicateTokenEx(
[in] HANDLE hExistingToken,
[in] DWORD dwDesiredAccess,
[in, optional] LPSECURITY_ATTRIBUTES lpTokenAttributes,
[in] SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
[in] TOKEN_TYPE TokenType,
[out] PHANDLE phNewToken
);
Parâmetros
[in] hExistingToken
Um identificador para um token de acesso aberto com acesso TOKEN_DUPLICATE.
[in] dwDesiredAccess
Especifica os direitos de acesso solicitados para o novo token. A função DuplicateTokenEx do
Para obter uma lista de direitos de acesso para tokens de acesso, consulte Access Rights for Access-Token Objects.
[in, optional] lpTokenAttributes
Um ponteiro para uma estrutura de SECURITY_ATTRIBUTES que especifica um de descritor de segurança para o novo token e determina se os processos filho podem herdar o token. Se lpTokenAttributes for NULL, o token obterá um descritor de segurança padrão e o identificador não poderá ser herdado. Se o descritor de segurança contiver uma lista de controle de acesso do sistema (SACL), o token obterá ACCESS_SYSTEM_SECURITY direito de acesso, mesmo que não tenha sido solicitado em dwDesiredAccess.
Para definir o proprietário no descritor de segurança para o novo token, o token de processo do chamador deve ter o SE_RESTORE_NAME conjunto de privilégios.
[in] ImpersonationLevel
Especifica um valor da enumeração SECURITY_IMPERSONATION_LEVEL que indica o nível de representação do novo token.
[in] TokenType
Especifica um dos seguintes valores da enumeração TOKEN_TYPE.
Valor | Significado |
---|---|
|
O novo token é um token primário |
|
O novo token é um token de representação. |
[out] phNewToken
Um ponteiro para uma variável handle
Quando terminar de usar o novo token, chame a função CloseHandle para fechar o identificador de token.
Valor de retorno
Se a função for bem-sucedida, a função retornará um valor diferente de zero.
Se a função falhar, ela retornará zero. Para obter informações de erro estendidas, chame GetLastError.
Observações
A função DuplicateTokenEx
Veja a seguir um cenário típico para usar DuplicateTokenEx para criar um token primário . Um aplicativo de servidor cria um thread que chama uma das funções de representação, como ImpersonateNamedPipeClient, para representar um cliente. O thread de representação chama a função OpenThreadToken para obter seu próprio token, que é um token de representação que tem o contexto de segurança do cliente. O thread especifica esse token de representação em uma chamada para DuplicateTokenEx, especificando o sinalizador TokenPrimary. A função DuplicateTokenEx cria um token primário que tem o contexto de segurança do cliente.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows XP [aplicativos da área de trabalho | Aplicativos UWP] |
servidor com suporte mínimo | Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP] |
da Plataforma de Destino |
Windows |
cabeçalho | securitybaseapi.h (inclua Windows.h) |
biblioteca | Advapi32.lib |
de DLL |
Advapi32.dll |