कोणती .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 प्रॉक्सी बदलण्याची गरज नाही.