2013-10-03 55 views
0

我使用下面的代碼從網頁獲得負載XML驗證但我不斷收到錯誤「遠程服務器返回錯誤:(407)代理身份驗證的HttpWebRequest不是針對代理服務器使用Kerberos

我看了大量的帖子在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(); 
+0

我用小提琴手分析請求頭和它會出現代理授權頭部丟失... ... –

回答

0

原來我需要設置認證類型爲「NTLM」,而不是「的Kerberos」對於網絡中的問題,但的主要原因錯誤是在框架的第2,3和3.5版中存在問題。 (得到微軟的證實) - 升級項目.NET4解決了這個問題.......

+0

只是要清楚,當你將'kerberos'改爲'ntlm',還是你還必須升級到.Net 4時,它是否工作? – StephenD

+0

由於網絡設置,我需要將auth類型設置爲「ntlm」,但早期版本的.NET框架存在問題,需要升級到.NET框架第4版才能解決問題 –

相關問題