ఏ .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 ప్రాక్సీ మార్పు అవసరం లేదు.