Dopo che una richiesta WinHTTP riceve 407, usate WinHttpQueryAuthSchemes per esaminare i metodi offerti e sceglierne uno supportato dal client e dall'account. Impostate le credenziali su quella richiesta:

WinHttpSetCredentials(
    requestHandle,
    WINHTTP_AUTH_TARGET_PROXY,
    selectedScheme,
    proxyUser,
    proxyPassword,
    nullptr);

L'ultimo argomento riservato deve essere null. Controllate il risultato booleano e, in caso di errore, GetLastError. Il successo significa che l'API ha accettato l'impostazione, non che il proxy abbia accettato l'accesso.

Inviate di nuovo tramite un flusso di autenticazione controllato ed esaminate la risposta. Limitate i tentativi; un flusso del corpo della richiesta già consumato deve poter essere riprodotto se l'operazione viene ripetuta. Un 401 della destinazione usa WINHTTP_AUTH_TARGET_SERVER, diverso da questa destinazione proxy.

Queste credenziali valgono per una singola richiesta. WinHTTP non le rende un archivio generico di credenziali per le richieste successive. Le connessioni autenticate riutilizzate possono nascondere temporaneamente un'altra richiesta di autenticazione, quindi l'applicazione deve comunque gestire le sfide future.

Tenete separata la scelta del proxy. Una stringa di indirizzo con credenziali non sostituisce questa API dell'handle della richiesta, così come raggiungere correttamente l'endpoint non completa l'autenticazione.

Articoli correlati