สำหรับ 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 ทั้งระบบ

บทความที่เกี่ยวข้อง