Aling .NET credentials ang para sa proxy?
Pag-ibahin ang WebProxy.Credentials, destination-server credentials at DefaultProxyCredentials sa pag-authenticate ng HTTP proxy.
Para sa sariling WebProxy, ilagay ang proxy account sa object na iyon. Iba ang mga tumatanggap ng ibang .NET credential properties:
| Property | Tumatanggap |
|---|---|
WebProxy.Credentials | Ang proxy na kinakatawan ng object na iyon. |
HttpClientHandler.Credentials | Ang destination server. |
DefaultProxyCredentials | Ang system default proxy kapag null ang Proxy at true ang UseProxy. |
Ibinibigay ng .NET 10 na halimbawang ito ang tahasang proxy at sarili nitong account:
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);
Palitan ang dokumentasyong endpoint at gamitin ang account na ibinigay ng operator. Hindi kailangang mag-imbento ng login para sa entry na walang authentication. Dahil tahasang itinakda ang Proxy ng handler, hindi kapalit ang DefaultProxyCredentials ng WebProxy.Credentials.
May object-specific scope din ang UseDefaultCredentials: magkaiba ang server authentication ng handler at proxy authentication ng WebProxy. Hindi pangkalahatang sagot sa 407 ang pagpapadala ng account ng process user.
Kung nagpapatuloy ang authentication challenge, suriin ang aktuwal na scheme, napiling endpoint at client/handler instance. Maaaring mauna ang proxy authentication sa destination TLS, kaya hindi ito masasagot ng Authorization header ng website. Nakadepende pa rin ang suporta sa handler, platform, serbisyo at deployment policy; hindi kailangan ang global Windows proxy change.