Nachdem eine WinHTTP-Anfrage 407 empfangen hat, prüfen Sie mit WinHttpQueryAuthSchemes die angebotenen Verfahren und wählen Sie eines, das Client und Konto unterstützen. Setzen Sie die Anmeldeinformationen für diese Anfrage:

WinHttpSetCredentials(
    requestHandle,
    WINHTTP_AUTH_TARGET_PROXY,
    selectedScheme,
    proxyUser,
    proxyPassword,
    nullptr);

Das letzte reservierte Argument muss null sein. Prüfen Sie das boolesche Ergebnis und bei einem Fehler GetLastError. Erfolg bedeutet, dass die API die Einstellung akzeptiert hat, nicht dass der Proxy die Anmeldung akzeptiert hat.

Senden Sie die Anfrage über einen kontrollierten Authentifizierungsablauf erneut und prüfen Sie die Antwort. Begrenzen Sie Wiederholungen; ein bereits verbrauchter Anfragetext-Stream muss wiedergabefähig sein, wenn der Vorgang wiederholt wird. Ein 401 des Ziels verwendet WINHTTP_AUTH_TARGET_SERVER, anders als dieses Proxy-Ziel.

Diese Anmeldeinformationen gelten für eine einzelne Anfrage. WinHTTP macht daraus keinen allgemeinen Anmeldeinformationsspeicher für spätere Anfragen. Wiederverwendete authentifizierte Verbindungen können eine weitere Abfrage vorübergehend verbergen, daher muss die Anwendung künftige Abfragen weiterhin behandeln.

Halten Sie die Proxy-Auswahl getrennt. Eine Adresszeichenfolge mit Anmeldeinformationen ersetzt diese Request-Handle-API nicht, so wie das erfolgreiche Erreichen des Endpunkts die Authentifizierung nicht abschließt.

Ähnliche Artikel