使用 Windows 身份验证的 Web 应用程序无法通过代理
Web application using Windows authentication can't go through proxy
我有一个使用 Windows 身份验证的 MVC4 应用程序。此应用程序会抓取各种 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
也不行。为什么我不能冒充自己(或访问该站点的任何人)并使用该用户对代理进行身份验证?
服务器的代理设置可能被忽略了。尝试阅读 this.
我有一个使用 Windows 身份验证的 MVC4 应用程序。此应用程序会抓取各种 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
也不行。为什么我不能冒充自己(或访问该站点的任何人)并使用该用户对代理进行身份验证?
服务器的代理设置可能被忽略了。尝试阅读 this.