कौन-से .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 प्रॉक्सी बदलना ज़रूरी नहीं।