다음을 통해 공유


ImpersonateNamedPipeClient 함수(namedpipeapi.h)

ImpersonateNamedPipeClient 함수는 명명된 파이프 클라이언트 애플리케이션을 가장합니다.

구문

BOOL ImpersonateNamedPipeClient(
  [in] HANDLE hNamedPipe
);

매개 변수

[in] hNamedPipe

명명된 파이프에 대한 핸들입니다.

반환 값

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

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

설명

ImpersonateNamedPipeClient 함수를 사용하면 명명된 파이프의 서버 끝이 클라이언트 끝을 가장할 수 있습니다. 이 함수가 호출되면 명명된 파이프 파일 시스템은 호출 프로세스 의 스레드를 변경하여 파이프에서 읽은 마지막 메시지의 보안 컨텍스트 를 가장하기 시작합니다. 파이프의 서버 끝만 이 함수를 호출할 수 있습니다.

서버는 가장이 완료되면 RevertToSelf 함수를 호출할 수 있습니다.

중요ImpersonateNamedPipeClient 함수가 실패하면 클라이언트가 가장되지 않고 함수를 호출한 프로세스의 보안 컨텍스트에서 모든 후속 클라이언트 요청이 수행됩니다. 호출 프로세스가 권한 있는 계정으로 실행되는 경우 클라이언트가 수행할 수 없는 작업을 수행할 수 있습니다. 보안 위험을 방지하기 위해 호출 프로세스는 항상 반환 값을 검사 합니다. 반환 값이 함수 호출이 실패했음을 나타내는 경우 클라이언트 요청을 실행하지 않아야 합니다.
 
ImpersonateNamedPipeClient를 포함한 모든 가장 함수는 다음 중 하나가 true인 경우 요청된 가장을 허용합니다.
  • 토큰의 요청된 가장 수준이 SecurityIdentification 또는 SecurityAnonymous와 같은 SecurityImpersonation보다 작습니다.
  • 호출자에게 는 SeImpersonatePrivilege 권한이 있습니다.
  • 프로세스(또는 호출자의 로그온 세션의 다른 프로세스)는 LogonUser 또는 LsaLogonUser 함수를 통해 명시적 자격 증명을 사용하여 토큰을 만들었습니다.
  • 인증된 ID는 호출자와 동일합니다.
WINDOWS XP SP1 이하: SeImpersonatePrivilege 권한은 지원되지 않습니다.

예제

이 함수를 사용하는 예제는 ACL을 사용하여 클라이언트 액세스 확인을 참조하세요.

요구 사항

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

추가 정보

권한 부여 함수

클라이언트/서버 Access Control 개요

DdeImpersonateClient

DuplicateToken

RevertToSelf