Ko WinHTTP izmenjuje 407 in 401
Ohranite izbrano stanje preverjanja pristnosti posredniškega strežnika in ga znova uporabite pred ponovnimi poskusi, medtem ko ločeno obravnavate izziv cilja.
Zahteva WinHTTP se preveri pri posredniškem strežniku, prejme 401 od spletnega mesta in nato pri naslednjem pošiljanju prejme še en 407. Posredniški strežnik in spletno mesto imata ločeni stanji preverjanja pristnosti, pot ponovnega pošiljanja pa mora ohraniti obe.
Microsoftov izvirni primer preverjanja pristnosti WinHTTP hrani izbrano shemo posredniškega strežnika v spremenljivki in pred vsakim WinHttpSendRequest znova uporabi račun posredniškega strežnika, potem ko je shema izbrana.
- Pošljite zahtevo in preglejte odgovor.
- Pri 407 povprašajte po ponujenih shemah in si zapomnite izbrano shemo posredniškega strežnika.
- Pred ponovnim pošiljanjem pokličite WinHttpSetCredentials za WINHTTP_AUTH_TARGET_PROXY s to shemo in računom.
- Pri 401 od cilja pridobite njegovo shemo in nastavite poverilnice strežnika, pri tem pa ohranite zapomnjeno stanje posredniškega strežnika za naslednje pošiljanje.
Primer posebej navaja ponovno preverjanje pristnosti po izzivu strežnika ali preusmeritvi kot razlog za ponovno uporabo poverilnic posredniškega strežnika. Če je klic samo v prvi veji 407, lahko druga pot ponovnega poskusa ostane brez pričakovane nastavitve.
Preverite vsak rezultat API in omejite ponavljajoče se napake. Microsoftov jedrnat primer sledi prejšnjemu stanju, produkcijska politika ponovnih poskusov pa bi morala prepoznati tudi ponavljajoče se izmenjujoče zaporedje.
Če uporabnik po napaki navede nadomestni račun, posodobite vrednosti, ki jih uporablja ta pot ponovnega pošiljanja. WinHttpSetCredentials velja za zahtevo; ni procesne shrambe gesel, katere vsebina bi se zamenjala za vse prihodnje zahteve.