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 ਐਪਲੀਕੇਸ਼ਨ ਬਿਲਡਰ ਹੈ; ਇਸਦਾ ਅਧਿਕਾਰ, ਕਲਾਇੰਟ ਰਜਿਸਟ੍ਰੇਸ਼ਨ ਅਤੇ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਸੰਰਚਨਾ ਬਣਾਈ ਰੱਖੋ। ਪ੍ਰੌਕਸੀ ਖਾਤੇ ਤੋਂ ਬਿਨਾਂ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਜਨਤਕ ਤੌਰ 'ਤੇ ਪਹੁੰਚਯੋਗ HTTPS ਅਧਿਕਾਰ ਮਾਰਗ ਲਈ, HTTP ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਤੋਂ HTTP ਪਤਾ ਉਦਾਹਰਨ WebProxy ਭਰ ਸਕਦਾ ਹੈ। ਲੋੜ ਪੈਣ 'ਤੇ WebProxy 'ਤੇ ਪ੍ਰੌਕਸੀ ਪ੍ਰਮਾਣ ਸੰਰਚਿਤ ਕਰੋ।
ਫੈਕਟਰੀ ਥ੍ਰੈਡ-ਸੁਰੱਖਿਅਤ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ। ਹਰ GetHttpClient ਕਾਲ ਦੇ ਅੰਦਰ ਨਵਾਂ ਬਣਾਉਣ ਦੀ ਬਜਾਏ ਕਲਾਇੰਟ ਦੁਬਾਰਾ ਵਰਤੋ। MSAL ਦਿੱਤੇ ਕਲਾਇੰਟ ਨੂੰ ਨਸ਼ਟ ਨਹੀਂ ਕਰਦਾ; ਇਸਦਾ ਮਾਲਕ ਉਸ ਜੀਵਨ-ਮਿਆਦ ਦਾ ਪ੍ਰਬੰਧ ਕਰਦਾ ਹੈ।
ਇਹ MSAL ਦੀਆਂ HTTP ਬੇਨਤੀਆਂ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਦਾ ਹੈ। ਇੰਟਰੈਕਟਿਵ ਸਾਈਨ-ਇਨ ਅਜਿਹਾ ਬ੍ਰਾਊਜ਼ਰ ਖੋਲ੍ਹ ਸਕਦਾ ਹੈ ਜਿਸਦਾ ਨੈੱਟਵਰਕ ਵੱਖਰਾ ਹੈ। ਇਸ ਲਈ ਕੰਮ ਕਰਨ ਵਾਲਾ ਬ੍ਰਾਊਜ਼ਰ ਲੌਗਇਨ ਇਹ ਸਾਬਤ ਨਹੀਂ ਕਰਦਾ ਕਿ ਟੋਕਨ HTTP ਕਲਾਇੰਟ ਦਾ ਉਹੀ ਮਾਰਗ ਹੈ।