我有以下代码:
WebClient webClient = new WebClient();
webClient.DownloadString(url);
我在Internet选项中配置了代理。代理需要身份验证。如果我在Internet Explorer中填写我的凭据,它就可以。
但是,它不适用于webClient。我正在使用Wireshark进行调试,以确保我完全理解它。如果我做
webClient.Proxy = new NetworkCredential("<myusername>", "<mypassword>");
然后我在Wireshark中看到带有凭据的CONNECT请求,代理工作。
但是,我也试过了
webClient.UseDefaultCredentials = true;
和
webClient.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
和
webClient.Proxy.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
在这些情况下,我都没有看到任何凭据的CONNECT请求。即使我已经在IE中,Chrome中以及应用程序中包含的浏览器中填写了凭据。它们确实显示在“用户帐户”中的“管理您的凭据”下。
我无法检查CredentialCache是否具有值,因为它始终为空。
目标框架是.NET 3.5,使用Visual C#2010。我还没有尝试在app.config中设置它,因为我还不知道这对我正在构建的内容是否实用。
我做错了吗?误会了什么?有没有办法检查CredentialCache是否设置了任何值?