Když WinHTTP střídá 407 a 401
Zachovejte zvolený stav ověřování proxy a před opakováním jej znovu použijte, zároveň ošetřete samostatnou výzvu cíle.
Požadavek WinHTTP se ověří vůči proxy, obdrží 401 od webu a při dalším odeslání dostane další 407. Proxy a web mají oddělený stav ověřování a cesta opětovného odeslání musí zachovat oba.
Ukázka nativního ověřování WinHTTP od Microsoftu drží zvolené schéma proxy v proměnné a po výběru tohoto schématu znovu použije účet proxy před každým WinHttpSendRequest.
- Odešlete požadavek a prohlédněte odpověď.
- U 407 se zeptejte na nabízená schémata a zapamatujte si zvolené schéma proxy.
- Před opětovným odesláním zavolejte WinHttpSetCredentials pro WINHTTP_AUTH_TARGET_PROXY s tímto schématem a účtem.
- U 401 od cíle získejte jeho schéma a nastavte přihlašovací údaje serveru, přičemž si pro další odeslání ponechte zapamatovaný stav proxy.
Ukázka výslovně uvádí opětovné ověření po výzvě serveru nebo přesměrování jako důvod pro opětovné použití přihlašovacích údajů proxy. Umístění volání pouze do první větve 407 může ponechat jinou cestu opakování bez očekávaného nastavení.
Kontrolujte každý výsledek API a udržujte opakovaná selhání v mezích. Kompaktní ukázka Microsoftu sleduje předchozí stav, zatímco produkční politika opakování by měla rozpoznat i opakovanou střídající se sekvenci.
Pokud uživatel po selhání poskytne náhradní účet, aktualizujte hodnoty, které tato cesta opětovného odeslání používá. WinHttpSetCredentials je vázán na požadavek; není to procesní úložiště hesel, jehož obsah se nahradí pro všechny budoucí požadavky.