ഓരോ പ്രോക്സി അക്കൗണ്ടിനും വേറിട്ട .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 ദാതാവിന് പിന്നീടുള്ള വെല്ലുവിളികൾക്ക് ഉത്തരം നൽകാമെങ്കിലും സ്ഥാപിതമായ ഒരു ടണൽ മറ്റൊരു അക്കൗണ്ടായി വീണ്ടും ലേബൽ ചെയ്യാൻ കഴിയില്ല. അസിങ്ക്രണസ് കോളുകൾക്ക് ചുറ്റും ഒരു ആഗോള ഉപയോക്തൃനാമം/പാസ്വേഡ് നൽകുന്നത് വെല്ലുവിളി സമയവും അക്കൗണ്ട് ഉടമസ്ഥതയും സംഘർഷത്തിൽ നിർത്തുന്നു.
വീണ്ടും ഉപയോഗം ആവശ്യമുള്ളപ്പോൾ പരിമിതമായ ക്ലയന്റ് സെറ്റ് സൂക്ഷിക്കുക. അതിന്റെ ട്രാൻസ്പോർട്ട് ഉപേക്ഷിക്കുന്നതിന് മുമ്പ് പഴയ ജോലി കളയുക. ഓരോ അഭ്യർത്ഥനയ്ക്കും പുതിയ ഹാൻഡ്ലർ കണക്ഷൻ പൂളുകൾ പാഴാക്കുന്നു; എല്ലാ ചരിത്ര അക്കൗണ്ടുകളും എന്നേക്കും സൂക്ഷിച്ചാൽ അവ പരിധിയില്ലാതെ വളരും.