Wenn WinHTTP zwischen 407 und 401 wechselt
Den gewählten Proxy-Authentifizierungsstatus beibehalten und ihn vor Wiederholungen erneut anwenden, während eine separate Ziel-Aufforderung behandelt wird.
Eine WinHTTP-Anfrage authentifiziert sich am Proxy, erhält die 401 einer Website und bekommt beim nächsten Senden erneut eine 407. Proxy und Website haben getrennte Authentifizierungszustände, und der Pfad zum erneuten Senden muss beide behalten.
Das native WinHTTP-Authentifizierungsbeispiel von Microsoft hält das gewählte Proxy-Schema in einer Variablen und wendet das Proxy-Konto vor jedem WinHttpSendRequest erneut an, nachdem dieses Schema gewählt wurde.
- Sende die Anfrage und prüfe die Antwort.
- Frage bei einer 407 die angebotenen Schemata ab und merke dir das gewählte Proxy-Schema.
- Rufe vor dem erneuten Senden WinHttpSetCredentials für WINHTTP_AUTH_TARGET_PROXY mit diesem Schema und Konto auf.
- Hole bei einer 401 des Ziels dessen Schema und setze die Server-Anmeldeinformationen, während der gemerkte Proxy-Zustand für das nächste Senden erhalten bleibt.
Das Beispiel nennt ausdrücklich die erneute Authentifizierung nach einer Server-Aufforderung oder Umleitung als Grund, die Proxy-Anmeldeinformationen erneut anzuwenden. Wird der Aufruf nur im ersten 407-Zweig platziert, kann ein anderer Wiederholungspfad ohne die erwartete Einrichtung bleiben.
Prüfe jedes API-Ergebnis und halte wiederholte Fehler begrenzt. Das kompakte Beispiel von Microsoft verfolgt den vorherigen Status, während eine Produktions-Retry-Richtlinie auch eine wiederholte wechselnde Sequenz erkennen sollte.
Gibt der Benutzer nach einem Fehler ein Ersatzkonto an, aktualisiere die Werte, die dieser Pfad zum erneuten Senden verwendet. WinHttpSetCredentials gilt anfragebezogen; es ist kein prozessweiter Passwortspeicher, dessen Inhalt für alle künftigen Anfragen ersetzt wird.