କେଉଁ .NET ପ୍ରବେଶ ତଥ୍ୟ ପ୍ରକ୍ସିର?
HTTP ପ୍ରକ୍ସି ପ୍ରମାଣୀକରଣରେ WebProxy.Credentials, ଲକ୍ଷ୍ୟ ସର୍ଭର ତଥ୍ୟ ଓ DefaultProxyCredentialsକୁ ଅଲଗା କରନ୍ତୁ।
ନିଜ WebProxy ପାଇଁ ପ୍ରକ୍ସି ଖାତା ସେହି ଅବଜେକ୍ଟରେ ରଖନ୍ତୁ। ଅନ୍ୟ .NET ପ୍ରବେଶ ତଥ୍ୟ ଗୁଣର ପ୍ରାପକ ଅଲଗା:
| ଗୁଣ | ପ୍ରାପକ |
|---|---|
WebProxy.Credentials | ସେହି ଅବଜେକ୍ଟ ଦର୍ଶାଉଥିବା ପ୍ରକ୍ସି। |
HttpClientHandler.Credentials | ଲକ୍ଷ୍ୟ ସର୍ଭର। |
DefaultProxyCredentials | ସିଷ୍ଟମ୍ର ମୂଳ ପ୍ରକ୍ସି, ଯେତେବେଳେ Proxy null ଓ UseProxy true। |
ଏହି .NET 10 ଉଦାହରଣ ସ୍ପଷ୍ଟ ଦିଆଯାଇଥିବା ପ୍ରକ୍ସି ଓ ତାହାର ନିଜ ଖାତା ଦିଏ:
using System;
using System.Net;
using System.Net.Http;
string password = Environment.GetEnvironmentVariable("PROXY_PASSWORD")
?? throw new InvalidOperationException("Set PROXY_PASSWORD");
var proxy = new WebProxy("http://203.0.113.10:8080")
{
Credentials = new NetworkCredential("proxy-user", password)
};
using var handler = new HttpClientHandler
{
Proxy = proxy,
UseProxy = true
};
using var client = new HttpClient(handler)
{
Timeout = TimeSpan.FromSeconds(15)
};
using var response = await client.GetAsync("https://example.com/");
Console.WriteLine((int)response.StatusCode);
ଦଲିଲ ଏଣ୍ଡପଏଣ୍ଟ ବଦଳାଇ ପରିଚାଳକ ଦେଇଥିବା ଖାତା ବ୍ୟବହାର କରନ୍ତୁ। ପ୍ରମାଣୀକରଣ ନଥିବା ତାଲିକା ପ୍ରବିଷ୍ଟିକୁ କଳ୍ପିତ ଲଗିନ୍ ଦରକାର ନାହିଁ। ହ୍ୟାଣ୍ଡଲର୍ର Proxy ସ୍ପଷ୍ଟ ଦିଆଯାଇଥିବାରୁ DefaultProxyCredentials, WebProxy.Credentialsର ବିକଳ୍ପ ନୁହେଁ।
UseDefaultCredentialsର ପରିସର ମଧ୍ୟ ଅବଜେକ୍ଟ ଅନୁସାରେ: ହ୍ୟାଣ୍ଡଲର୍ର ସର୍ଭର ପ୍ରମାଣୀକରଣ ଓ WebProxyର ପ୍ରକ୍ସି ପ୍ରମାଣୀକରଣ ଅଲଗା। ପ୍ରକ୍ରିୟା ବ୍ୟବହାରକାରୀଙ୍କ ଖାତା ପଠାଇବା 407ର ସାଧାରଣ ଉତ୍ତର ନୁହେଁ।
ପ୍ରମାଣୀକରଣ ଚ୍ୟାଲେଞ୍ଜ ରହିଲେ ପ୍ରକୃତ ପଦ୍ଧତି, ବାଛିଥିବା ଏଣ୍ଡପଏଣ୍ଟ ଓ କ୍ଲାଏଣ୍ଟ/ହ୍ୟାଣ୍ଡଲର୍ ଇନ୍ଷ୍ଟାନ୍ସ ଦେଖନ୍ତୁ। ପ୍ରକ୍ସି ପ୍ରମାଣୀକରଣ ଲକ୍ଷ୍ୟ TLS ପୂର୍ବରୁ ହୋଇପାରେ, ତେଣୁ ୱେବସାଇଟ୍ର Authorization ହେଡର୍ ତାହାର ଉତ୍ତର ଦେଇପାରେ ନାହିଁ। ସମର୍ଥନ ଏବେ ମଧ୍ୟ ହ୍ୟାଣ୍ଡଲର୍, ପ୍ଲାଟଫର୍ମ, ସେବା ଓ ନିୟୋଜନ ନୀତି ଉପରେ ନିର୍ଭର କରେ; ସମଗ୍ର Windows ପ୍ରକ୍ସି ବଦଳ ଦରକାର ନାହିଁ।