[英]HttpWebRequest not authenticating against proxy server using kerberos
我正在使用以下代碼從網頁獲取加載xml,但我一直收到錯誤“遠程服務器返回錯誤:(407)需要代理身份驗證。 ”
我已經在stackoverflow和其他站點上查看了大量帖子,但無法解決問題。 我們的IT支持部門告訴我,這可能是由於它們強迫代理服務器使用kerberos身份驗證,但是正如您所看到的,我已將kerberos指定為身份驗證類型。
這是我當前正在使用的代碼:
IWebProxy proxy = request.Proxy;
if (proxy != null)
{
string proxyuri = proxy.GetProxy(request.RequestUri).ToString();
var cc = new CredentialCache();
cc.Add(
new Uri(proxyuri),
"Kerberos", //if we don't set it to "Kerberos" we get error 407 with ---> the function requested is not supported.
CredentialCache.DefaultNetworkCredentials);
request.UseDefaultCredentials = true;
request.Proxy = new WebProxy(proxyuri, false);
request.Proxy.Credentials = cc;
}
//set some sort of user-agent string
request.UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)";
// Create a new XmlDocument
var doc = new XmlDocument();
var stream = request.GetResponse().GetResponseStream();
原來,我需要為所討論的網絡將身份驗證類型設置為“ ntlm”,而不是“ kerberos”,但是導致該錯誤的主要原因是該框架的版本2、3和3.5中存在問題。 (由Microsoft確認)-將項目升級到.NET4可解決此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.