Keď požiadavka WinHTTP dostane 407, použite WinHttpQueryAuthSchemes na preskúmanie ponúkaných metód a vyberte tú, ktorú podporuje klient aj konto. Nastavte prihlasovacie údaje na tejto požiadavke:

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

Posledný rezervovaný argument musí byť null. Skontrolujte logický výsledok a pri zlyhaní GetLastError. Úspech znamená, že API nastavenie prijalo, nie že proxy prijala prihlásenie.

Odošlite znova kontrolovaným overovacím tokom a preskúmajte odpoveď. Obmedzte opakovania; už spotrebovaný tok tela požiadavky musí byť znova prehrateľný, ak sa operácia zopakuje. Odpoveď 401 od cieľa používa WINHTTP_AUTH_TARGET_SERVER, na rozdiel od tohto cieľa proxy.

Tieto prihlasovacie údaje platia pre jedinú požiadavku. WinHTTP z nich nerobí všeobecné úložisko prihlasovacích údajov pre neskoršie požiadavky. Opakovane použité overené pripojenia môžu dočasne skryť ďalšiu výzvu, takže aplikácia musí aj naďalej zvládať budúce výzvy.

Udržujte výber proxy oddelene. Reťazec adresy s prihlasovacími údajmi nenahrádza toto API handle požiadavky, rovnako ako úspešné dosiahnutie koncového bodu neukončuje overenie.

Súvisiace články