Երբ WinHTTP-ը հերթափոխում է 407-ը և 401-ը
Պահպանեք ընտրված պրոքսի նույնականացման վիճակը և կրկին կիրառեք այն նոր փորձերից առաջ՝ առանձին զբաղվելով նպատակակետի մարտահրավերով։
WinHTTP հարցումը նույնականացվում է պրոքսիի մոտ, ստանում է կայքի 401-ը, ապա հաջորդ ուղարկման ժամանակ ստանում ևս մեկ 407։ Պրոքսին և կայքը ունեն առանձին նույնականացման վիճակ, և վերաուղարկման ուղին պետք է պահպանի երկուսն էլ։
Microsoft-ի բնիկ WinHTTP նույնականացման օրինակը ընտրված պրոքսի սխեման պահում է փոփոխականում և այդ սխեման ընտրելուց հետո յուրաքանչյուր WinHttpSendRequest-ից առաջ կրկին կիրառում է պրոքսի հաշիվը։
- Ուղարկեք հարցումը և ստուգեք պատասխանը։
- 407-ի դեպքում հարցրեք առաջարկվող սխեմաները և հիշեք ընտրված պրոքսի սխեման։
- Վերաուղարկելուց առաջ կանչեք WinHttpSetCredentials-ը WINHTTP_AUTH_TARGET_PROXY-ի համար այդ սխեմայով և հաշվով։
- Նպատակակետի 401-ի դեպքում ստացեք դրա սխեման և սահմանեք սերվերի հավատարմագրերը՝ պահպանելով հիշված պրոքսի վիճակը հաջորդ ուղարկման համար։
Օրինակը հատուկ նշում է սերվերի մարտահրավերից կամ վերահասցեավորումից հետո կրկնական նույնականացումը որպես պրոքսի հավատարմագրերը կրկին կիրառելու պատճառ։ Կանչը միայն առաջին 407 ճյուղում տեղադրելը կարող է մեկ այլ նոր փորձի ուղի թողնել առանց սպասվող կարգավորման։
Ստուգեք յուրաքանչյուր API արդյունք և սահմանափակ պահեք կրկնվող ձախողումները։ Microsoft-ի կոմպակտ օրինակը հետևում է նախորդ կարգավիճակին, իսկ արտադրական նոր փորձերի քաղաքականությունը պետք է ճանաչի նաև կրկնվող հերթափոխ հաջորդականությունը։
Եթե ձախողումից հետո օգտատերը տրամադրում է փոխարինող հաշիվ, թարմացրեք այդ վերաուղարկման ուղու օգտագործած արժեքները։ WinHttpSetCredentials-ը հարցումային է. այն գործընթացի մակարդակի գաղտնաբառերի պահոց չէ, որի բովանդակությունը փոխարինվում է բոլոր ապագա հարցումների համար։