คำขอ WinHTTP พิสูจน์ตัวตนกับพร็อกซี ได้รับ 401 จากเว็บไซต์ แล้วได้รับการตอบกลับ 407 อีกครั้งในการส่งครั้งถัดไป พร็อกซีและเว็บไซต์มีสถานะการพิสูจน์ตัวตนแยกจากกัน และเส้นทางการส่งซ้ำต้องเก็บรักษาทั้งสองไว้

ตัวอย่างการพิสูจน์ตัวตน WinHTTP แบบดั้งเดิมของ Microsoft เก็บสคีมาพร็อกซีที่เลือกไว้ในตัวแปร และนำบัญชีพร็อกซีมาใช้ซ้ำก่อนทุก WinHttpSendRequest หลังจากเลือกสคีมานั้นแล้ว

  1. ส่งคำขอและตรวจสอบการตอบกลับ
  2. สำหรับ 407 ให้สอบถามสคีมาที่เสนอและจำสคีมาพร็อกซีที่เลือกไว้
  3. ก่อนส่งซ้ำ ให้เรียก WinHttpSetCredentials สำหรับ WINHTTP_AUTH_TARGET_PROXY ด้วยสคีมาและบัญชีนั้น
  4. สำหรับ 401 จากปลายทาง ให้รับสคีมาของปลายทางและตั้งค่าข้อมูลรับรองของเซิร์ฟเวอร์ โดยเก็บสถานะพร็อกซีที่จำไว้สำหรับการส่งครั้งถัดไป

ตัวอย่างระบุโดยเฉพาะว่าการพิสูจน์ตัวตนซ้ำหลังความท้าทายจากเซิร์ฟเวอร์หรือการเปลี่ยนเส้นทางเป็นเหตุผลในการนำข้อมูลรับรองพร็อกซีมาใช้ซ้ำ การวางการเรียกไว้เฉพาะในสาขา 407 แรกอาจทำให้เส้นทางการลองใหม่อีกเส้นขาดการตั้งค่าที่คาดไว้

ตรวจสอบผลลัพธ์ของ API ทุกครั้งและจำกัดความล้มเหลวที่เกิดซ้ำ ตัวอย่างแบบกระชับของ Microsoft ติดตามสถานะก่อนหน้า ขณะที่นโยบายการลองใหม่ในระบบการผลิตควรรู้จักลำดับสลับที่เกิดซ้ำด้วย

หากผู้ใช้ให้บัญชีทดแทนหลังความล้มเหลว ให้อัปเดตค่าที่เส้นทางการส่งซ้ำนั้นใช้ WinHttpSetCredentials มีขอบเขตระดับคำขอ ไม่ใช่ที่เก็บรหัสผ่านระดับโปรเซสที่เนื้อหาถูกแทนที่สำหรับทุกคำขอในอนาคต

บทความที่เกี่ยวข้อง