MSAL.NET-ന് പുനരുപയോഗിക്കാവുന്ന പ്രോക്സി ക്ലയന്റ് നൽകുക
പങ്കിട്ട പ്രോക്സി-ബോധമുള്ള HttpClient-ന് ചുറ്റും IMsalHttpClientFactory നടപ്പാക്കി അത് MSAL ആപ്ലിക്കേഷൻ ബിൽഡറിലേക്ക് അറ്റാച്ച് ചെയ്യുക.
MSAL.NET-ന് അതിന്റെ HTTP ഗതാഗതം IMsalHttpClientFactory-ൽ നിന്ന് ലഭിക്കാം. പ്രോക്സിനായി കോൺഫിഗർ ചെയ്ത ഒരു ക്ലയന്റ് പൊതിയുക:
sealed class TokenHttpFactory : IMsalHttpClientFactory
{
private readonly HttpClient client;
public TokenHttpFactory(HttpClient client)
{
this.client = client;
}
public HttpClient GetHttpClient() => client;
}ആപ്ലിക്കേഷന്റെ ആയുസ്സിനായി ഹാൻഡ്ലറും ക്ലയന്റും ഒരിക്കൽ സൃഷ്ടിച്ച്, നിലവിലുള്ള MSAL ബിൽഡർ കോൺഫിഗറേഷനിൽ ഫാക്ടറി അറ്റാച്ച് ചെയ്യുക:
var proxy = new WebProxy("http://proxy.example:8080");
var handler = new HttpClientHandler { Proxy = proxy, UseProxy = true };
var tokenHttp = new HttpClient(handler);
builder.WithHttpClientFactory(new TokenHttpFactory(tokenHttp));ബിൽഡർ ആപ്ലിക്കേഷന്റെ നിലവിലുള്ള MSAL ആപ്ലിക്കേഷൻ ബിൽഡറാണ്; അതിന്റെ authority, ക്ലയന്റ് രജിസ്ട്രേഷൻ, ക്രെഡൻഷ്യൽ കോൺഫിഗറേഷൻ എന്നിവ നിലനിർത്തുക. പ്രോക്സി അക്കൗണ്ട് ഇല്ലാതെ അനുവദിക്കപ്പെട്ട പൊതുവായി എത്താവുന്ന HTTPS authority റൂട്ടിന്, HTTP പ്രോക്സി പട്ടികയിൽനിന്നുള്ള ഒരു HTTP വിലാസം ഉദാഹരണ WebProxy നിറയ്ക്കാം. ആവശ്യമുള്ളപ്പോൾ WebProxy-യിൽ പ്രോക്സി ക്രെഡൻഷ്യലുകൾ കോൺഫിഗർ ചെയ്യുക.
ഫാക്ടറി ത്രെഡ്-സുരക്ഷിതമായിരിക്കണം. ഓരോ GetHttpClient കോളിനുള്ളിലും പുതിയത് നിർമ്മിക്കുന്നതിനുപകരം ക്ലയന്റ് പുനരുപയോഗിക്കുക. MSAL നൽകിയ ക്ലയന്റ് ഡിസ്പോസ് ചെയ്യുന്നില്ല; അതിന്റെ ഉടമ ആ ആയുസ്സ് കൈകാര്യം ചെയ്യുന്നു.
ഇത് MSAL-ന്റെ HTTP അഭ്യർത്ഥനകൾ നിയന്ത്രിക്കുന്നു. ഇന്ററാക്ടീവ് സൈൻ-ഇൻ നെറ്റ്വർക്ക് വേറിട്ടതായ ഒരു ബ്രൗസർ തുറന്നേക്കാം. അതിനാൽ പ്രവർത്തിക്കുന്ന ബ്രൗസർ ലോഗിൻ ടോക്കൺ HTTP ക്ലയന്റിന് അതേ റൂട്ട് ഉണ്ടെന്ന് തെളിയിക്കുന്നില്ല.