다음을 통해 공유


DuplicateToken 함수(securitybaseapi.h)

DuplicateToken 함수는 이미 존재하는 토큰을 복제하는 새 액세스 토큰을 만듭니다.

구문

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

매개 변수

[in] ExistingTokenHandle

TOKEN_DUPLICATE 액세스를 사용하여 열린 액세스 토큰에 대한 핸들입니다.

[in] ImpersonationLevel

새 토큰의 가장 수준을 제공하는 SECURITY_IMPERSONATION_LEVEL 열거형 형식을 지정합니다.

[out] DuplicateTokenHandle

중복 토큰에 대한 핸들을 받는 변수에 대한 포인터입니다. 이 핸들에는 새 토큰에 대한 TOKEN_IMPERSONATE 및 TOKEN_QUERY 액세스 권한이 있습니다.

새 토큰 사용을 마쳤으면 CloseHandle 함수를 호출하여 토큰 핸들을 닫습니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

DuplicateToken 함수는 SetThreadTokenImpersonateLoggedOnUser와 같은 함수에서 사용할 수 있는 가장 토큰을 만듭니다. DuplicateToken에서 만든 토큰은 기본 토큰이 필요한 CreateProcessAsUser 함수에서 사용할 수 없습니다. CreateProcessAsUser에 전달할 수 있는 토큰을 만들려면 DuplicateTokenEx 함수를 사용합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 securitybaseapi.h(Windows.h 포함)
라이브러리 Advapi32.lib
DLL Advapi32.dll

추가 정보

Access Control 개요

기본 Access Control 함수

CreateProcessAsUser

DuplicateTokenEx

ImpersonateLoggedOnUser

SECURITY_IMPERSONATION_LEVEL

SetThreadToken