为 .NET HttpClient 的默认代理使用 DefaultProxyCredentials
默认发现用 DefaultProxyCredentials,显式代理用 WebProxy.Credentials,而 UseDefaultCredentials 只用于目标服务器。
要让运行时以当前安全上下文选择默认代理:
var handler = new System.Net.Http.HttpClientHandler
{
UseProxy = true,
Proxy = null,
DefaultProxyCredentials =
System.Net.CredentialCache.DefaultCredentials
};
var client = new System.Net.Http.HttpClient(handler);DefaultProxyCredentials 仅在所示的精确条件下生效:UseProxy = true 与 Proxy = null。默认策略仍由中间方决定。
| 身份验证的接收方 | 输入 |
|---|---|
| 默认/自动发现的代理 | HttpClientHandler.DefaultProxyCredentials |
| 显式 WebProxy 对象 | 该对象的 Credentials |
| 目标服务器 | HttpClientHandler.UseDefaultCredentials |
这些名称相近的输入不能互换。请在首个请求之前设置处理器,并为工作负载保留其客户端。
代理必须通过两端都支持的方案接受该账户。服务当前的身份可能不同于浏览器已正常工作的交互式用户。