Vastaa WinHTTP-välityspalvelimen haasteeseen pyyntökahvassa
Käytä WinHttpSetCredentials-funktiota välityspalvelimen todennuksen kohteen ja tuetun tarjotun menetelmän kanssa ja yritä pyyntöä sitten tietoisesti uudelleen.
Kun WinHTTP-pyyntö on saanut 407-vastauksen, tutki tarjottuja menetelmiä WinHttpQueryAuthSchemes-funktiolla ja valitse yksi, jota asiakasohjelma ja tili tukevat. Aseta tunnistetiedot tähän pyyntöön:
WinHttpSetCredentials(
requestHandle,
WINHTTP_AUTH_TARGET_PROXY,
selectedScheme,
proxyUser,
proxyPassword,
nullptr);
Viimeisen varatun argumentin on oltava null. Tarkista totuusarvoinen tulos ja epäonnistuessa GetLastError. Onnistuminen tarkoittaa, että API hyväksyi asetuksen, ei että välityspalvelin hyväksyi kirjautumisen.
Lähetä uudelleen hallitun todennusvirran kautta ja tarkastele vastausta. Rajoita uudelleenyrityksiä; jo kulutettu pyynnön rungon virta on voitava toistaa, jos toiminto toistetaan. Kohteen 401 käyttää WINHTTP_AUTH_TARGET_SERVER-arvoa, mikä eroaa tästä välityspalvelimen kohteesta.
Nämä tunnistetiedot koskevat yhtä pyyntöä. WinHTTP ei tee niistä yleistä tunnistetietovarastoa myöhemmille pyynnöille. Uudelleenkäytetyt todennetut yhteydet voivat piilottaa toisen haasteen tilapäisesti, joten sovelluksen on silti käsiteltävä tulevat haasteet.
Pidä välityspalvelimen valinta erillään. Tunnistetietoja sisältävä osoiteketju ei korvaa tätä pyyntökahvan API:a, samoin kuin päätepisteen onnistunut saavuttaminen ei suorita todennusta loppuun.