எந்த .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 ப்ராக்ஸி மாற்றம் தேவையில்லை.