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

संबंधित लेख