WinHTTP հարցումը նույնականացվում է պրոքսիի մոտ, ստանում է կայքի 401-ը, ապա հաջորդ ուղարկման ժամանակ ստանում ևս մեկ 407։ Պրոքսին և կայքը ունեն առանձին նույնականացման վիճակ, և վերաուղարկման ուղին պետք է պահպանի երկուսն էլ։

Microsoft-ի բնիկ WinHTTP նույնականացման օրինակը ընտրված պրոքսի սխեման պահում է փոփոխականում և այդ սխեման ընտրելուց հետո յուրաքանչյուր WinHttpSendRequest-ից առաջ կրկին կիրառում է պրոքսի հաշիվը։

  1. Ուղարկեք հարցումը և ստուգեք պատասխանը։
  2. 407-ի դեպքում հարցրեք առաջարկվող սխեմաները և հիշեք ընտրված պրոքսի սխեման։
  3. Վերաուղարկելուց առաջ կանչեք WinHttpSetCredentials-ը WINHTTP_AUTH_TARGET_PROXY-ի համար այդ սխեմայով և հաշվով։
  4. Նպատակակետի 401-ի դեպքում ստացեք դրա սխեման և սահմանեք սերվերի հավատարմագրերը՝ պահպանելով հիշված պրոքսի վիճակը հաջորդ ուղարկման համար։

Օրինակը հատուկ նշում է սերվերի մարտահրավերից կամ վերահասցեավորումից հետո կրկնական նույնականացումը որպես պրոքսի հավատարմագրերը կրկին կիրառելու պատճառ։ Կանչը միայն առաջին 407 ճյուղում տեղադրելը կարող է մեկ այլ նոր փորձի ուղի թողնել առանց սպասվող կարգավորման։

Ստուգեք յուրաքանչյուր API արդյունք և սահմանափակ պահեք կրկնվող ձախողումները։ Microsoft-ի կոմպակտ օրինակը հետևում է նախորդ կարգավիճակին, իսկ արտադրական նոր փորձերի քաղաքականությունը պետք է ճանաչի նաև կրկնվող հերթափոխ հաջորդականությունը։

Եթե ձախողումից հետո օգտատերը տրամադրում է փոխարինող հաշիվ, թարմացրեք այդ վերաուղարկման ուղու օգտագործած արժեքները։ WinHttpSetCredentials-ը հարցումային է. այն գործընթացի մակարդակի գաղտնաբառերի պահոց չէ, որի բովանդակությունը փոխարինվում է բոլոր ապագա հարցումների համար։

Առնչվող հոդվածներ