Wanneer WinHTTP wisselt tussen 407 en 401
Behoud de gekozen proxy-authenticatiestatus en pas die opnieuw toe vóór nieuwe pogingen, terwijl een aparte uitdaging van de bestemming wordt afgehandeld.
Een WinHTTP-verzoek authenticeert bij de proxy, ontvangt de 401 van een website en krijgt bij de volgende verzending nog een 407. De proxy en de website hebben afzonderlijke authenticatiestatussen, en het pad voor opnieuw verzenden moet beide behouden.
Het native WinHTTP-authenticatievoorbeeld van Microsoft bewaart het gekozen proxyschema in een variabele en past het proxyaccount opnieuw toe vóór elke WinHttpSendRequest nadat dat schema is gekozen.
- Verstuur het verzoek en inspecteer de reactie.
- Vraag bij een 407 de aangeboden schema's op en onthoud het gekozen proxyschema.
- Roep vóór het opnieuw verzenden WinHttpSetCredentials aan voor WINHTTP_AUTH_TARGET_PROXY met dat schema en account.
- Haal bij een 401 van de bestemming het schema op en stel de serverreferenties in, terwijl de onthouden proxystatus voor de volgende verzending behouden blijft.
Het voorbeeld noemt specifiek herauthenticatie na een serveruitdaging of omleiding als reden om de proxyreferenties opnieuw toe te passen. Als de aanroep alleen in de eerste 407-tak staat, kan een ander pad voor opnieuw proberen zonder de verwachte instelling achterblijven.
Controleer elk API-resultaat en houd herhaalde fouten beperkt. Het compacte voorbeeld van Microsoft volgt de vorige status, terwijl een productie-retrybeleid ook een herhaalde afwisselende reeks moet herkennen.
Als de gebruiker na een fout een vervangend account opgeeft, werk dan de waarden bij die dat pad voor opnieuw verzenden gebruikt. WinHttpSetCredentials is verzoekgebonden; het is geen procesbrede wachtwoordopslag waarvan de inhoud voor alle toekomstige verzoeken wordt vervangen.