Egy WinHTTP-kérés hitelesít a proxynál, megkapja egy webhely 401-esét, majd a következő küldésnél újabb 407-est kap. A proxynak és a webhelynek külön hitelesítési állapota van, és az újraküldési útvonalnak mindkettőt meg kell tartania.

A Microsoft natív WinHTTP-hitelesítési példája a kiválasztott proxy-sémát változóban tartja, és a séma kiválasztása után minden WinHttpSendRequest előtt újra alkalmazza a proxyfiókot.

  1. Küldje el a kérést, és vizsgálja meg a választ.
  2. 407 esetén kérdezze le a felkínált sémákat, és jegyezze meg a kiválasztott proxy-sémát.
  3. Újraküldés előtt hívja meg a WinHttpSetCredentials függvényt a WINHTTP_AUTH_TARGET_PROXY értékhez azzal a sémával és fiókkal.
  4. A cél 401-esénél szerezze be annak sémáját, és állítsa be a kiszolgáló hitelesítő adatait, miközben a megjegyzett proxyállapot a következő küldésre megmarad.

A példa kifejezetten a kiszolgálói kihívás vagy átirányítás utáni újrahitelesítést nevezi meg a proxy hitelesítő adatai újraalkalmazásának okaként. Ha a hívás csak az első 407-es ágban szerepel, egy másik újrapróbálkozási útvonal a várt beállítás nélkül maradhat.

Ellenőrizze minden API-eredményt, és tartsa korlátozottan az ismétlődő hibákat. A Microsoft tömör példája az előző állapotot követi, a termelési újrapróbálkozási szabályzatnak pedig az ismétlődő váltakozó sorozatot is fel kell ismernie.

Ha a felhasználó hiba után helyettesítő fiókot ad meg, frissítse azokat az értékeket, amelyeket ez az újraküldési útvonal használ. A WinHttpSetCredentials kéréshatókörű; nem folyamatszintű jelszótároló, amelynek tartalma minden jövőbeli kéréshez lecserélődne.

Kapcsolódó cikkek