Untuk WebProxy khusus, letakkan akun proxy pada objek itu. Properti kredensial .NET lainnya melayani penerima berbeda:

PropertiPenerima
WebProxy.CredentialsProxy yang diwakili objek itu.
HttpClientHandler.CredentialsServer tujuan.
DefaultProxyCredentialsProxy bawaan sistem ketika Proxy null dan UseProxy true.

Contoh .NET 10 ini menyediakan proxy eksplisit dan akunnya sendiri:

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);

Ganti endpoint dokumentasi dan gunakan akun dari operator. Entri daftar tanpa autentikasi tidak memerlukan login buatan. Karena Proxy handler ditetapkan eksplisit, DefaultProxyCredentials bukan pengganti WebProxy.Credentials.

UseDefaultCredentials juga memiliki cakupan khusus objek: autentikasi server handler dan autentikasi proxy WebProxy berbeda. Mengirim akun pengguna proses bukan jawaban umum untuk 407.

Jika tantangan autentikasi berlanjut, periksa skema sebenarnya, endpoint terpilih, dan instans klien/handler. Autentikasi proxy bisa mendahului TLS tujuan, jadi header Authorization situs tidak bisa menjawabnya. Dukungan tetap bergantung pada handler, platform, layanan, dan kebijakan penerapan; tidak perlu mengubah proxy Windows secara global.

Artikel terkait