តើព័ត៌មានចូល .NET ណាខ្លះជារបស់ប្រូកស៊ី?
បែងចែក WebProxy.Credentials ព័ត៌មានចូលម៉ាស៊ីនមេគោលដៅ និង DefaultProxyCredentials ពេលផ្ទៀងផ្ទាត់ប្រូកស៊ី HTTP។
សម្រាប់ 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 របស់ handler ត្រូវកំណត់ច្បាស់ DefaultProxyCredentials មិនជំនួស WebProxy.Credentials ទេ។
UseDefaultCredentials ក៏មានវិសាលភាពតាមវត្ថុ៖ ការផ្ទៀងផ្ទាត់ម៉ាស៊ីនមេរបស់ handler និងការផ្ទៀងផ្ទាត់ប្រូកស៊ីរបស់ WebProxy ខុសគ្នា។ ផ្ញើគណនីអ្នកប្រើដំណើរការមិនមែនចម្លើយទូទៅសម្រាប់ 407 ទេ។
បើការទាមទារផ្ទៀងផ្ទាត់នៅបន្ត ពិនិត្យវិធីពិត ចំណុចចុងដែលជ្រើស និងវត្ថុ client/handler។ ការផ្ទៀងផ្ទាត់ប្រូកស៊ីអាចកើតមុន TLS គោលដៅ ដូច្នេះបឋមកថា Authorization របស់គេហទំព័រមិនអាចឆ្លើយបាន។ ការគាំទ្រនៅតែអាស្រ័យលើ handler វេទិកា សេវា និងគោលការណ៍ដាក់ប្រើ។ មិនត្រូវការការប្ដូរប្រូកស៊ី Windows សកលទេ។