Kad WinHTTP maina 407 un 401
Saglabājiet izvēlēto starpniekservera autentifikācijas stāvokli un atkārtoti to piemērojiet pirms atkārtojumiem, vienlaikus apstrādājot atsevišķu galamērķa izaicinājumu.
WinHTTP pieprasījums autentificējas starpniekserverī, saņem vietnes 401 un pēc tam nākamajā sūtīšanas reizē saņem vēl vienu 407. Starpniekserverim un vietnei ir atsevišķi autentifikācijas stāvokļi, un atkārtotas sūtīšanas ceļam jāsaglabā abi.
Microsoft oriģinālais WinHTTP autentifikācijas paraugs izvēlēto starpniekservera shēmu glabā mainīgajā un pirms katra WinHttpSendRequest atkārtoti piemēro starpniekservera kontu pēc tam, kad shēma ir izvēlēta.
- Nosūtiet pieprasījumu un pārbaudiet atbildi.
- 407 gadījumā vaicājiet piedāvātās shēmas un atcerieties izvēlēto starpniekservera shēmu.
- Pirms atkārtotas sūtīšanas izsauciet WinHttpSetCredentials vērtībai WINHTTP_AUTH_TARGET_PROXY ar šo shēmu un kontu.
- Galamērķa 401 gadījumā iegūstiet tā shēmu un iestatiet servera akreditācijas datus, saglabājot atcerēto starpniekservera stāvokli nākamajai sūtīšanai.
Paraugs īpaši norāda atkārtotu autentifikāciju pēc servera izaicinājuma vai novirzīšanas kā iemeslu atkārtoti piemērot starpniekservera akreditācijas datus. Ja izsaukums ievietots tikai pirmajā 407 zarā, cits atkārtojuma ceļš var palikt bez gaidītā iestatījuma.
Pārbaudiet katru API rezultātu un ierobežojiet atkārtotas kļūdas. Microsoft kodolīgais paraugs izseko iepriekšējo stāvokli, savukārt ražošanas atkārtojumu politikai būtu jāatpazīst arī atkārtota mainīga secība.
Ja pēc kļūmes lietotājs norāda aizvietojošu kontu, atjauniniet vērtības, ko izmanto šis atkārtotas sūtīšanas ceļš. WinHttpSetCredentials attiecas uz pieprasījumu; tā nav procesa līmeņa paroļu krātuve, kuras saturs tiktu aizstāts visiem turpmākajiem pieprasījumiem.