为什么使用默认代理凭据不会导致在 407 响应后自动发出第二个 http 请求?
Why does using the default proxy credentials not result in an automatic second http request following a 407 response?
我已将 fiddler 设置为需要身份验证的代理服务器 these instructions。
当我在 HttpClientHandler
中明确设置我在 Fiddler 中设置的凭据时:
this.Proxy = WebRequest.DefaultWebProxy;
this.Proxy.Credentials = new NetworkCredential("sweet name", "sweet password");
然后在 Fiddler 中我得到 2 个 http 请求,一个 407 和一个自动 200,请求成功:
但是,当我尝试使用默认凭据时:
this.Proxy = WebRequest.DefaultWebProxy;
this.Proxy.Credentials = CredentialCache.DefaultCredentials;
然后在Fiddler中我只得到一个请求,一个407,请求失败:
为什么没有像我明确设置代理凭据时那样使用默认凭据自动重试?
正如@Robert 在评论中指出的那样,the documentation 说:
The DefaultCredentials property applies only to NTLM, negotiate, and Kerberos-based authentication.
因此,当代理使用基本身份验证时,在 407 响应之后没有自动第二个 http 请求是有道理的。
我已将 fiddler 设置为需要身份验证的代理服务器 these instructions。
当我在 HttpClientHandler
中明确设置我在 Fiddler 中设置的凭据时:
this.Proxy = WebRequest.DefaultWebProxy;
this.Proxy.Credentials = new NetworkCredential("sweet name", "sweet password");
然后在 Fiddler 中我得到 2 个 http 请求,一个 407 和一个自动 200,请求成功:
但是,当我尝试使用默认凭据时:
this.Proxy = WebRequest.DefaultWebProxy;
this.Proxy.Credentials = CredentialCache.DefaultCredentials;
然后在Fiddler中我只得到一个请求,一个407,请求失败:
为什么没有像我明确设置代理凭据时那样使用默认凭据自动重试?
正如@Robert 在评论中指出的那样,the documentation 说:
The DefaultCredentials property applies only to NTLM, negotiate, and Kerberos-based authentication.
因此,当代理使用基本身份验证时,在 407 响应之后没有自动第二个 http 请求是有道理的。