我有一个使用Windows身份验证的MVC4应用程序。此应用程序刮擦各种互联网网站。此应用程序托管在我们的Intranet中,需要通过我们的公司代理才能访问Internet。通过一些调试,我可以看到我已经完全通过用户ID进行身份验证,并且我正在模仿。我的问题是我一直收到错误The remote server returned an error: (407) Proxy Authentication Required.
。我可以验证我的代码是否有效,因为如果我硬编码代理的凭据,它会按预期工作。
var windowsIdentity = (WindowsIdentity) HttpContext.Current.User.Identity;
using (windowsIdentity.Impersonate())
{
var webClient = new WebClient
{
Proxy = new WebProxy(PROXY)
{
Credentials = CredentialCache.DefaultNetworkCredentials
}
};
var str = webClient.DownloadString("http://google.com");
}
使用CredentialCache.DefaultCredentials
也不起作用。为什么我不能冒充自己(或访问该网站的任何人)并使用该用户对代理进行身份验证?