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 |
---|---|
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 . | |
La famiglia di indirizzi specificata non è supportata. | |
Un buffer passato era troppo piccolo. | |
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
Uso di estensioni socket sicure
Funzioni API della piattaforma di filtro di Windows