Keď WinHTTP strieda 407 a 401
Zachovajte zvolený stav overovania proxy a pred opakovaním ho znova použite, zároveň ošetrite samostatnú výzvu cieľa.
Požiadavka WinHTTP sa overí voči proxy, dostane 401 od webu a pri ďalšom odoslaní dostane ďalšiu 407. Proxy a web majú oddelený stav overovania a cesta opätovného odoslania musí zachovať oba.
Ukážka natívneho overovania WinHTTP od Microsoftu drží zvolenú schému proxy v premennej a po výbere tejto schémy znova použije účet proxy pred každým WinHttpSendRequest.
- Odošlite požiadavku a pozrite si odpoveď.
- Pri 407 sa opýtajte na ponúkané schémy a zapamätajte si zvolenú schému proxy.
- Pred opätovným odoslaním zavolajte WinHttpSetCredentials pre WINHTTP_AUTH_TARGET_PROXY s touto schémou a účtom.
- Pri 401 od cieľa získajte jeho schému a nastavte prihlasovacie údaje servera, pričom si pre ďalšie odoslanie ponechajte zapamätaný stav proxy.
Ukážka výslovne uvádza opätovné overenie po výzve servera alebo presmerovaní ako dôvod na opätovné použitie prihlasovacích údajov proxy. Umiestnenie volania len do prvej vetvy 407 môže nechať inú cestu opakovania bez očakávaného nastavenia.
Kontrolujte každý výsledok API a udržujte opakované zlyhania v medziach. Kompaktná ukážka Microsoftu sleduje predchádzajúci stav, zatiaľ čo produkčná politika opakovania by mala rozpoznať aj opakovanú striedajúcu sa sekvenciu.
Ak používateľ po zlyhaní poskytne náhradný účet, aktualizujte hodnoty, ktoré táto cesta opätovného odoslania používa. WinHttpSetCredentials je viazaný na požiadavku; nie je to procesné úložisko hesiel, ktorého obsah sa nahradí pre všetky budúce požiadavky.