ImpersonateNamedPipeClient 함수(namedpipeapi.h)
ImpersonateNamedPipeClient 함수는 명명된 파이프 클라이언트 애플리케이션을 가장합니다.
구문
BOOL ImpersonateNamedPipeClient(
[in] HANDLE hNamedPipe
);
매개 변수
[in] hNamedPipe
명명된 파이프에 대한 핸들입니다.
반환 값
함수가 성공하면 반환 값이 0이 아닙니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
설명
ImpersonateNamedPipeClient 함수를 사용하면 명명된 파이프의 서버 끝이 클라이언트 끝을 가장할 수 있습니다. 이 함수가 호출되면 명명된 파이프 파일 시스템은 호출 프로세스 의 스레드를 변경하여 파이프에서 읽은 마지막 메시지의 보안 컨텍스트 를 가장하기 시작합니다. 파이프의 서버 끝만 이 함수를 호출할 수 있습니다.
서버는 가장이 완료되면 RevertToSelf 함수를 호출할 수 있습니다.
중요ImpersonateNamedPipeClient 함수가 실패하면 클라이언트가 가장되지 않고 함수를 호출한 프로세스의 보안 컨텍스트에서 모든 후속 클라이언트 요청이 수행됩니다. 호출 프로세스가 권한 있는 계정으로 실행되는 경우 클라이언트가 수행할 수 없는 작업을 수행할 수 있습니다. 보안 위험을 방지하기 위해 호출 프로세스는 항상 반환 값을 검사 합니다. 반환 값이 함수 호출이 실패했음을 나타내는 경우 클라이언트 요청을 실행하지 않아야 합니다.
- 토큰의 요청된 가장 수준이 SecurityIdentification 또는 SecurityAnonymous와 같은 SecurityImpersonation보다 작습니다.
- 호출자에게 는 SeImpersonatePrivilege 권한이 있습니다.
- 프로세스(또는 호출자의 로그온 세션의 다른 프로세스)는 LogonUser 또는 LsaLogonUser 함수를 통해 명시적 자격 증명을 사용하여 토큰을 만들었습니다.
- 인증된 ID는 호출자와 동일합니다.
예제
이 함수를 사용하는 예제는 ACL을 사용하여 클라이언트 액세스 확인을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | namedpipeapi.h |
라이브러리 | Advapi32.lib |
DLL | Advapi32.dll |