เมื่อ WinHTTP สลับระหว่าง 407 กับ 401
เก็บสถานะการพิสูจน์ตัวตนของพร็อกซีที่เลือกไว้และนำมาใช้ซ้ำก่อนการลองใหม่ พร้อมจัดการความท้าทายของปลายทางแยกต่างหาก
คำขอ WinHTTP พิสูจน์ตัวตนกับพร็อกซี ได้รับ 401 จากเว็บไซต์ แล้วได้รับการตอบกลับ 407 อีกครั้งในการส่งครั้งถัดไป พร็อกซีและเว็บไซต์มีสถานะการพิสูจน์ตัวตนแยกจากกัน และเส้นทางการส่งซ้ำต้องเก็บรักษาทั้งสองไว้
ตัวอย่างการพิสูจน์ตัวตน WinHTTP แบบดั้งเดิมของ Microsoft เก็บสคีมาพร็อกซีที่เลือกไว้ในตัวแปร และนำบัญชีพร็อกซีมาใช้ซ้ำก่อนทุก WinHttpSendRequest หลังจากเลือกสคีมานั้นแล้ว
- ส่งคำขอและตรวจสอบการตอบกลับ
- สำหรับ 407 ให้สอบถามสคีมาที่เสนอและจำสคีมาพร็อกซีที่เลือกไว้
- ก่อนส่งซ้ำ ให้เรียก WinHttpSetCredentials สำหรับ WINHTTP_AUTH_TARGET_PROXY ด้วยสคีมาและบัญชีนั้น
- สำหรับ 401 จากปลายทาง ให้รับสคีมาของปลายทางและตั้งค่าข้อมูลรับรองของเซิร์ฟเวอร์ โดยเก็บสถานะพร็อกซีที่จำไว้สำหรับการส่งครั้งถัดไป
ตัวอย่างระบุโดยเฉพาะว่าการพิสูจน์ตัวตนซ้ำหลังความท้าทายจากเซิร์ฟเวอร์หรือการเปลี่ยนเส้นทางเป็นเหตุผลในการนำข้อมูลรับรองพร็อกซีมาใช้ซ้ำ การวางการเรียกไว้เฉพาะในสาขา 407 แรกอาจทำให้เส้นทางการลองใหม่อีกเส้นขาดการตั้งค่าที่คาดไว้
ตรวจสอบผลลัพธ์ของ API ทุกครั้งและจำกัดความล้มเหลวที่เกิดซ้ำ ตัวอย่างแบบกระชับของ Microsoft ติดตามสถานะก่อนหน้า ขณะที่นโยบายการลองใหม่ในระบบการผลิตควรรู้จักลำดับสลับที่เกิดซ้ำด้วย
หากผู้ใช้ให้บัญชีทดแทนหลังความล้มเหลว ให้อัปเดตค่าที่เส้นทางการส่งซ้ำนั้นใช้ WinHttpSetCredentials มีขอบเขตระดับคำขอ ไม่ใช่ที่เก็บรหัสผ่านระดับโปรเซสที่เนื้อหาถูกแทนที่สำหรับทุกคำขอในอนาคต