簡體   English   中英

HttpWebRequest未使用kerberos針對代理服務器進行身份驗證

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM