다음을 통해 공유


WSAImpersonateSocketPeer 함수(ws2tcpip.h)

WSAImpersonateSocketPeer 함수는 애플리케이션 수준 권한 부여를 수행하기 위해 소켓 피어에 해당하는 보안 주체를 가장하는 데 사용됩니다.

구문

INT WSAAPI WSAImpersonateSocketPeer(
  [in]           SOCKET         Socket,
  [in, optional] const sockaddr *PeerAddr,
  [in]           ULONG          PeerAddrLen
);

매개 변수

[in] Socket

애플리케이션 소켓을 식별합니다.

[in, optional] PeerAddr

가장할 피어의 IP 주소입니다. 연결 지향 소켓의 경우 연결된 소켓은 피어를 고유하게 식별합니다. 이 경우 이 매개 변수는 무시됩니다.

[in] PeerAddrLen

PeerAddress 매개 변수의 크기(바이트)입니다.

반환 값

함수가 성공하면 반환 값은 0입니다. 그렇지 않으면 SOCKET_ERROR 값이 반환되고 WSAGetLastError를 호출하여 특정 오류 코드를 검색할 수 있습니다.

몇 가지 가능한 오류 코드가 아래에 나열되어 있습니다.

오류 코드 의미
WSAEFAULT
시스템에서 호출의 포인터 인수를 사용하려고 할 때 잘못된 주소 포인터를 검색했습니다. PeerAddr 매개 변수가 NULL 포인터인 경우 이 오류가 반환됩니다.
WSAEAFNOSUPPORT
지정된 주소 패밀리는 지원되지 않습니다.
WSAEMSGSIZE
전달된 버퍼가 너무 작습니다.
WSAENOTSOCK
Socket 매개 변수에 전달된 설명자가 유효한 소켓이 아닙니다.

설명

WSAImpersonateSocketPeer 함수는 애플리케이션 수준 권한 부여를 수행하기 위해 소켓 피어에 해당하는 보안 주체를 가장하는 기능을 애플리케이션에 제공합니다. 피어 사용자(가장) 토큰을 사용할 수 있는 경우 가장에 사용되며, 그렇지 않으면 피어 컴퓨터 토큰이 사용됩니다. WSAImpersonateSocketPeer 함수는 겹치지 않는 차단 소켓에 대해서만 호출할 수 있습니다. 권한 부여 검사를 수행한 후 애플리케이션은 WSARevertImpersonation 함수를 호출하여 가장을 종료해야 합니다.

연결 지향 소켓의 경우 연결이 설정된 후 WSAImpersonateSocketPeer 함수를 호출해야 합니다. 연결 지향 소켓을 사용하는 서버 애플리케이션의 경우 accept, AcceptEx 또는 WSAAccept 함수가 반환된 후 WSAImpersonateSocketPeer를 호출해야 합니다.

연결이 없는 소켓의 경우 애플리케이션은 새 피어 주소에 대해 recv, recvfrom, WSARecv, WSARecvEx, WSARecvFrom 또는 LPFN_WSARECVMSG(WSARecvMsg) 함수 반환 직후 WSAImpersonateSocketPeer 함수를 호출해야 합니다.

WSAImpersonateSocketPeer 함수는 단일 소켓에 대해 여러 번 호출할 수 있습니다.

다음 조건이 충족되지 않으면 오류가 반환됩니다.

  • Socket 매개 변수의 주소 패밀리는 AF_INET 또는 AF_INET6 합니다.
  • 소켓 유형은 SOCK_STREAM 또는 SOCK_DGRAM.

가장을 종료하려면 WSARevertImpersonation 함수를 호출해야 합니다.

요구 사항

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

추가 정보

AcceptEx

보안 소켓 확장 사용

WSAAccept

WSADeleteSocketPeerTargetName

WSAQuerySocketSecurity

WSARecv

WSARecvEx

WSARecvFrom

LPFN_WSARECVMSG (WSARecvMsg)

WSARevertImpersonation

WSASetSocketPeerTargetName

WSASetSocketSecurity

Windows 필터링 플랫폼

Windows 필터링 플랫폼 API 함수

Winsock Secure Socket 확장

받아들일

Recv

recvfrom