Når WinHTTP veksler mellom 407 og 401
Behold den valgte autentiseringstilstanden for proxyen og bruk den på nytt før nye forsøk, mens en separat utfordring fra målet håndteres.
En WinHTTP-forespørsel autentiserer mot proxyen, mottar et nettsteds 401 og får deretter nok en 407 ved neste sending. Proxyen og nettstedet har hver sin autentiseringstilstand, og videresendingsbanen må beholde begge.
Microsofts opprinnelige WinHTTP-autentiseringseksempel holder det valgte proxy-skjemaet i en variabel og bruker proxy-kontoen på nytt før hver WinHttpSendRequest etter at skjemaet er valgt.
- Send forespørselen og undersøk svaret.
- Ved 407: spør etter de tilbudte skjemaene og husk det valgte proxy-skjemaet.
- Før videresending, kall WinHttpSetCredentials for WINHTTP_AUTH_TARGET_PROXY med det skjemaet og den kontoen.
- Ved 401 fra målet: hent skjemaet og sett serverens påloggingsinformasjon, mens den huskede proxy-tilstanden beholdes for neste sending.
Eksemplet nevner uttrykkelig reautentisering etter en serverutfordring eller omdirigering som grunn til å bruke proxy-påloggingsinformasjonen på nytt. Legges kallet bare i den første 407-grenen, kan en annen nytt-forsøk-bane stå uten det forventede oppsettet.
Kontroller hvert API-resultat og hold gjentatte feil begrenset. Microsofts kompakte eksempel sporer forrige status, mens en produksjonsretrypolitikk også bør kjenne igjen en gjentatt vekslende sekvens.
Hvis brukeren oppgir en erstatningskonto etter en feil, oppdater verdiene som den videresendingsbanen bruker. WinHttpSetCredentials er forespørselsbundet; det er ikke et prosessomfattende passordlager der innholdet erstattes for alle fremtidige forespørsler.