เก็บ .NET handler แยกสำหรับแต่ละบัญชีพร็อกซี
สร้าง handler แยกสำหรับบัญชีที่ใช้งานพร้อมกัน แทนการแทนที่ WebProxy.Credentials บน transport ที่ให้บริการคำขออยู่แล้ว
transport อาจเก็บอ็อบเจกต์ผู้ให้บริการข้อมูลรับรองพร็อกซีที่เลือกไว้ตอนสร้างตัวจัดการพูลของมันไว้ การแทนที่ WebProxy.Credentials หลังจากนั้นไม่ใช่การสลับบัญชีที่เชื่อถือได้
สร้างเส้นทางและบัญชีไปพร้อมกันก่อนใช้ไคลเอนต์:
var proxy = new System.Net.WebProxy(proxyEndpoint)
{
Credentials = new System.Net.NetworkCredential(proxyUser, proxyPassword)
};
var handler = new System.Net.Http.HttpClientHandler
{
UseProxy = true,
Proxy = proxy
};
var client = new System.Net.Http.HttpClient(handler);ปลายทางและข้อมูลรับรองมาจากการกำหนดค่าของแอปพลิเคชัน สร้าง handler อีกตัวสำหรับตัวตนที่สอง HttpClient อีกตัวที่ใช้ handler แรกร่วมกันก็ใช้นโยบายของมันร่วมกันด้วย
ผู้ให้บริการ ICredentials แบบกำหนดเองสามารถตอบข้อท้าทายภายหลังได้ แต่ไม่สามารถติดป้ายอุโมงค์ที่สร้างขึ้นแล้วว่าเป็นบัญชีอื่นได้ การกำหนดชื่อผู้ใช้/รหัสผ่านเดียวในระดับโลกรอบการเรียกแบบอะซิงโครนัสทำให้เวลาของข้อท้าทายและความเป็นเจ้าของบัญชีขัดแย้งกัน
เก็บชุดไคลเอนต์แบบจำกัดเมื่อต้องใช้ซ้ำ ระบายงานเก่าก่อนทิ้ง transport ของมัน handler ใหม่ต่อหนึ่งคำขอทำให้พูลการเชื่อมต่อสูญเปล่า การเก็บบัญชีในอดีตทั้งหมดไว้ตลอดไปทำให้มันเติบโตโดยไม่มีขีดจำกัด