După ce o cerere WinHTTP primește 407, utilizați WinHttpQueryAuthSchemes pentru a examina metodele oferite și a alege una acceptată de client și de cont. Setați credențialele pe acea cerere:

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

Ultimul argument rezervat trebuie să fie null. Verificați rezultatul boolean și, la eșec, GetLastError. Succesul înseamnă că API-ul a acceptat setarea, nu că proxy-ul a acceptat autentificarea.

Retrimiteți printr-un flux de autentificare controlat și examinați răspunsul. Limitați reîncercările; un flux al corpului cererii deja consumat trebuie să poată fi redat din nou dacă operațiunea se repetă. Un 401 al destinației folosește WINHTTP_AUTH_TARGET_SERVER, diferit de această țintă de proxy.

Aceste credențiale se aplică unei singure cereri. WinHTTP nu le transformă într-un depozit general de credențiale pentru cererile ulterioare. Conexiunile autentificate reutilizate pot ascunde temporar o altă provocare, așa că aplicația trebuie să gestioneze în continuare provocările viitoare.

Țineți separată selecția proxy-ului. Un șir de adresă care conține credențiale nu înlocuiește acest API de handle al cererii, la fel cum atingerea cu succes a punctului final nu finalizează autentificarea.

Articole similare