החזיקו מטפל .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 מותאם יכול לענות לאתגרים מאוחרים יותר, אך אינו יכול לתייג מחדש מנהרה מבוססת כחשבון אחר. הקצאת שם משתמש/סיסמה גלובליים אחד סביב קריאות אסינכרוניות משאירה את תזמון האתגר ואת הבעלות על החשבון בעימות.
החזיקו קבוצה מוגבלת של לקוחות כשנדרשת שימוש חוזר. נקזו עבודה ישנה לפני השלכת התעבורה שלה. מטפל חדש לכל בקשה מבזבז מאגרי חיבורים; החזקת כל חשבון היסטורי לנצח מגדילה אותם בלי גבול.