Condividi tramite


Funzione WSASetSocketPeerTargetName (ws2tcpip.h)

La funzione WSASetSocketPeerTargetName viene usata per specificare il nome della destinazione peer (SPN) che corrisponde a un indirizzo IP peer. Questo nome di destinazione deve essere specificato dalle applicazioni client per identificare in modo sicuro il peer che deve essere autenticato.

Sintassi

INT WSAAPI WSASetSocketPeerTargetName(
  [in]           SOCKET                             Socket,
  [in]           const SOCKET_PEER_TARGET_NAME      *PeerTargetName,
  [in]           ULONG                              PeerTargetNameLen,
  [in, optional] LPWSAOVERLAPPED                    Overlapped,
  [in, optional] LPWSAOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
);

Parametri

[in] Socket

Descrittore che identifica un socket in cui viene assegnato il nome della destinazione peer.

[in] PeerTargetName

Puntatore a una struttura SOCKET_PEER_TARGET_NAME che definisce il nome della destinazione peer.

[in] PeerTargetNameLen

Dimensione, in byte, del parametro PeerTargetName .

[in, optional] Overlapped

Puntatore a una struttura WSAOVERLAPPED . Questo parametro viene ignorato per i socket non sovrapposti.

[in, optional] CompletionRoutine

Puntatore alla routine di completamento chiamata quando l'operazione è stata completata. Questo parametro viene ignorato per i socket non sovrapposti.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è zero. In caso contrario, viene restituito un valore di SOCKET_ERROR e è possibile recuperare un codice di errore specifico chiamando WSAGetLastError.

Di seguito sono elencati alcuni codici di errore possibili.

Codice di errore Significato
WSAEAFNOSUPPORT
La famiglia di indirizzi specificata non è supportata.
WSAEFAULT
Il sistema ha rilevato un puntatore di indirizzo non valido nel tentativo di usare un argomento puntatore di una chiamata. Questo errore viene restituito se il parametro PeerTargetName è un puntatore NULL .
WSAEINVAL
È stato passato un parametro non valido. Questo errore viene restituito se il socket passato nel parametro Socket non è stato creato con una famiglia di indirizzi del AF_INET o AF_INET6 e un tipo di socket di SOCK_DGRAM o SOCK_STREAM. Questo errore viene restituito anche per un socket senza connessione se l'indirizzo IP e la porta sono zero nel membro PeerAddress della struttura SOCKET_PEER_TARGET_NAME a cui punta il parametro PeerTargetName .
WSAEISCONN
Il socket è connesso. Questa funzione non è consentita con un socket connesso, indipendentemente dal fatto che il socket sia orientato alla connessione o senza connessione.
WSAEMSGSIZE
Un buffer passato era troppo piccolo.
WSAENOTSOCK
Il descrittore passato nel parametro Socket non è un socket valido.

Commenti

La funzione WSASetSocketPeerTargetName fornisce un metodo per specificare il nome di destinazione corrispondente a un'entità di sicurezza peer. Questa funzione deve essere usata da un'applicazione client per identificare il peer che deve essere autenticato. Un'applicazione client deve specificare il nome della destinazione peer per evitare attacchi man-in-the-middle attendibili. Per i socket senza connessione, un'applicazione può chiamare più volte la funzione WSASetSocketPeerTargetName per specificare nomi di destinazione diversi per indirizzi IP peer diversi.

Questa funzione semplifica la chiamare la funzione WSAIoctl con un parametro dwIoControlCode impostato su SIO_SET_PEER_TARGET_NAME.

Per i socket orientati alla connessione, è necessario chiamare la funzione WSASetSocketPeerTargetName prima di WSAConnect. Per i socket senza connessione, questa funzione deve essere chiamata prima di WSAConnect o prima della prima chiamata WSASendTo indirizzata all'indirizzo peer.

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.

Requisiti

   
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

SOCKET_PEER_TARGET_NAME

Uso delle estensioni Secure Socket

WSADeleteSocketPeerTargetName

WSAImpersonateSocketPeer

WSAQuerySocketSecurity

WSARevertImpersonation

WSASetSocketSecurity

Piattaforma filtro Windows

Funzioni API della piattaforma di filtro Di Windows

Estensioni del socket sicuro Winsock