Kun WinHTTP vaihtelee 407:n ja 401:n välillä
Säilytä valittu välityspalvelimen todennuksen tila ja käytä sitä uudelleen ennen uusintayrityksiä ja käsittele erillinen kohteen haaste.
WinHTTP-pyyntö todennetaan välityspalvelimelle, se saa verkkosivuston 401:n ja saa seuraavalla lähetyksellä vielä 407:n. Välityspalvelimella ja verkkosivustolla on erilliset todennuksen tilat, ja uudelleenlähetyksen polun on säilytettävä molemmat.
Microsoftin alkuperäinen WinHTTP-todennusesimerkki pitää valitun välityspalvelimen skeeman muuttujassa ja käyttää välityspalvelimen tiliä uudelleen ennen jokaista WinHttpSendRequest-kutsua, kun skeema on valittu.
- Lähetä pyyntö ja tutki vastaus.
- Kysy 407:n kohdalla tarjotut skeemat ja muista valittu välityspalvelimen skeema.
- Ennen uudelleenlähetystä kutsu WinHttpSetCredentials kohteelle WINHTTP_AUTH_TARGET_PROXY tällä skeemalla ja tilillä.
- Kohteen 401:n kohdalla hanki sen skeema ja aseta palvelimen tunnistetiedot säilyttäen muistettu välityspalvelimen tila seuraavaa lähetystä varten.
Esimerkki mainitsee nimenomaisesti uudelleentodennuksen palvelimen haasteen tai uudelleenohjauksen jälkeen syyksi välityspalvelimen tunnistetietojen uudelleen käyttämiselle. Jos kutsu sijoitetaan vain ensimmäiseen 407-haaraan, toinen uusintayrityksen polku voi jäädä ilman odotettua valmistelua.
Tarkista jokainen API-tulos ja pidä toistuvat virheet rajattuina. Microsoftin suppea esimerkki seuraa edellistä tilaa, kun taas tuotannon uusintayrityskäytännön tulisi tunnistaa myös toistuva vaihteleva jakso.
Jos käyttäjä antaa epäonnistumisen jälkeen korvaavan tilin, päivitä arvot, joita kyseinen uudelleenlähetyksen polku käyttää. WinHttpSetCredentials on pyyntökohtainen; se ei ole prosessinlaajuinen salasanavarasto, jonka sisältö korvattaisiin kaikille tuleville pyynnöille.