ಯಾವ .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 ಪ್ರಾಕ್ಸಿ ಬದಲಾವಣೆ ಬೇಕಿಲ್ಲ.