जब WinHTTP 407 और 401 के बीच बदलता है
चुनी गई प्रॉक्सी प्रमाणीकरण स्थिति को बनाए रखें और फिर से प्रयास से पहले उसे दोबारा लागू करें, साथ ही अलग गंतव्य चुनौती संभालें।
एक WinHTTP अनुरोध प्रॉक्सी पर प्रमाणीकरण करता है, वेबसाइट का 401 प्राप्त करता है, और फिर अगले भेजने पर एक और 407 पाता है। प्रॉक्सी और वेबसाइट की प्रमाणीकरण स्थिति अलग है, और पुनः भेजने के मार्ग को दोनों बनाए रखना होता है।
माइक्रोसॉफ़्ट का मूल WinHTTP प्रमाणीकरण नमूना चुनी गई प्रॉक्सी स्कीम को एक चर में रखता है और वह स्कीम चुने जाने के बाद हर WinHttpSendRequest से पहले प्रॉक्सी खाते को दोबारा लागू करता है।
- अनुरोध भेजें और प्रतिक्रिया जाँचें।
- 407 के लिए, दिए गए स्कीम पूछें और चुनी गई प्रॉक्सी स्कीम याद रखें।
- दोबारा भेजने से पहले, उस स्कीम और खाते के साथ WINHTTP_AUTH_TARGET_PROXY के लिए WinHttpSetCredentials कॉल करें।
- गंतव्य के 401 के लिए, उसकी स्कीम लें और अगले भेजने के लिए याद रखी प्रॉक्सी स्थिति बनाए रखते हुए सर्वर क्रेडेंशियल सेट करें।
नमूना विशेष रूप से सर्वर चुनौती या रीडायरेक्ट के बाद पुनः प्रमाणीकरण को प्रॉक्सी क्रेडेंशियल दोबारा लागू करने का कारण बताता है। कॉल को केवल पहली 407 शाखा में रखने से कोई अन्य पुनः प्रयास मार्ग अपेक्षित सेटअप के बिना रह सकता है।
हर API परिणाम जाँचें और बार-बार होने वाली विफलताओं को सीमित रखें। माइक्रोसॉफ़्ट का संक्षिप्त नमूना पिछली स्थिति पर नज़र रखता है, जबकि उत्पादन पुनः प्रयास नीति को बार-बार बदलते क्रम को भी पहचानना चाहिए।
यदि विफलता के बाद उपयोगकर्ता प्रतिस्थापन खाता देता है, तो उस पुनः भेजने वाले मार्ग द्वारा उपयोग किए जाने वाले मान अपडेट करें। WinHttpSetCredentials अनुरोध-सीमित है; यह प्रक्रिया-व्यापी पासवर्ड भंडार नहीं है जिसकी सामग्री सभी भावी अनुरोधों के लिए बदल दी जाए।