Condividi tramite


Funzione WSAImpersonateSocketPeer (ws2tcpip.h)

La funzione WSAImpersonateSocketPeer viene usata per rappresentare l'entità di sicurezza corrispondente a un peer socket per eseguire l'autorizzazione a livello di applicazione.

Sintassi

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

Parametri

[in] Socket

Identifica il socket dell'applicazione.

[in, optional] PeerAddr

Indirizzo IP del peer da rappresentare. Per i socket orientati alla connessione, il socket connesso identifica in modo univoco un peer. In questo caso, questo parametro viene ignorato.

[in] PeerAddrLen

Dimensioni, in byte, del parametro PeerAddress .

Valore restituito

Se la funzione ha esito positivo, il valore restituito è 0. In caso contrario, viene restituito un valore di SOCKET_ERROR e un codice di errore specifico può essere recuperato chiamando WSAGetLastError.

Di seguito sono elencati alcuni codici di errore possibili.

Codice di errore Significato
WSAEFAULT
Il sistema ha rilevato un puntatore degli indirizzi non valido nel tentativo di usare un argomento puntatore di una chiamata. Questo errore viene restituito se il parametro PeerAddr era un puntatore NULL .
WSAEAFNOSUPPORT
La famiglia di indirizzi specificata non è supportata.
WSAEMSGSIZE
Un buffer passato era troppo piccolo.
WSAENOTSOCK
Il descrittore passato nel parametro Socket non è un socket valido.

Commenti

La funzione WSAImpersonateSocketPeer fornisce un'applicazione che consente di rappresentare l'entità di sicurezza corrispondente a un peer socket per eseguire l'autorizzazione a livello di applicazione. Se il token peer user (rappresentazione) è disponibile, verrà usato per la rappresentazione, altrimenti verrà usato il token peer computer. La funzione WSAImpersonateSocketPeer può essere chiamata solo per il blocco, i socket non sovrapposti. Dopo aver eseguito eventuali controlli di autorizzazione, un'applicazione deve chiamare la funzione WSARevertImpersonation per terminare la rappresentazione.

Per i socket orientati alla connessione, la funzione WSAImpersonateSocketPeer deve essere chiamata dopo aver stabilito una connessione. Per un'applicazione server che usa socket orientati alla connessione, la funzione WSAImpersonateSocketPeer deve essere chiamata dopo la funzione accept, AcceptEx o WSAAccept .

Per i socket senza connessione, l'applicazione deve chiamare la funzione WSAImpersonateSocketPeer immediatamente dopo la funzione recv, recvfrom, WSARecvEx, WSARecvEx, WSARecvFrom o LPFN_WSARECVMSG (WSARecvMsg) restituisce per un nuovo indirizzo peer.

La funzione WSAImpersonateSocketPeer può essere chiamata più volte per un singolo socket.

Se le condizioni seguenti non vengono soddisfatte, verrà restituito un errore.

  • La famiglia di indirizzi del parametro Socket deve essere AF_INET o AF_INET6.
  • Il tipo di socket deve essere SOCK_STREAM o SOCK_DGRAM.

La funzione WSARevertImpersonation deve essere chiamata per terminare la rappresentazione.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione ws2tcpip.h
Libreria Fwpuclnt.lib
DLL Fwpuclnt.dll

Vedi anche

AcceptEx

Uso di estensioni socket sicure

WSAAccept

WSADeleteSocketPeerTargetName

WSAQuerySocketSecurity

WSARecv

WSARecvEx

WSARecvFrom

LPFN_WSARECVMSG (WSARecvMsg)

WSARevertImpersonation

WSASetSocketPeerTargetName

WSASetSocketSecurity

Piattaforma filtro Windows

Funzioni API della piattaforma di filtro di Windows

Estensioni socket sicure Winsock

Accettare

Recv

recvfrom