برای هر حساب پروکسی یک هندلر جداگانه .NET نگه دارید
برای حسابهای همزمان هندلرهای جداگانه بسازید، بهجای جایگزینی WebProxy.Credentials روی انتقالی که از قبل به درخواستها خدمت میکند.
یک انتقال میتواند شیء تأمینکننده اعتبارنامه پروکسی را که هنگام ساخت مدیر استخر آن انتخاب شده بود نگه دارد. جایگزینی 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);نقطه پایانی و اعتبارنامهها از پیکربندی برنامه میآیند. برای هویت دوم هندلر دیگری بسازید؛ HttpClient دیگری که هندلر اول را به اشتراک میگذارد سیاست آن را نیز به اشتراک میگذارد.
تأمینکننده ICredentials سفارشی میتواند به چالشهای بعدی پاسخ دهد، اما نمیتواند یک تونل برقرارشده را بهعنوان حساب دیگری برچسبگذاری کند. اختصاص یک نام کاربری/رمز عبور سراسری حول فراخوانیهای ناهمگام، زمان چالش و مالکیت حساب را در تعارض میگذارد.
وقتی بازاستفاده لازم است مجموعهای محدود از کلاینتها نگه دارید. پیش از دور انداختن انتقال آن، کار قدیمی را تخلیه کنید. یک هندلر جدید برای هر درخواست استخرهای اتصال را هدر میدهد؛ نگه داشتن همه حسابهای تاریخی برای همیشه آنها را بیحد رشد میدهد.