HttpWebRequest не проходит проверку подлинности на прокси-сервере с использованием Kerberos

Я использую следующий код для получения загрузки XML с веб-страницы, но получаю сообщение об ошибке "Удаленный сервер возвратил ошибку: (407) Требуется проверка подлинности прокси".

Я просмотрел большое количество сообщений как на stackru, так и на других сайтах и ​​не могу решить эту проблему. Мне сказали, что наш отдел ИТ-поддержки объясняет это тем, что они заставляют прокси-сервер использовать аутентификацию 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();

1 ответ

Решение

Оказывается, мне нужно было установить тип аутентификации "ntlm", а не "kerberos" для рассматриваемой сети, но основная причина ошибки заключается в том, что существует проблема в версиях 2, 3 и 3.5 платформы. (подтверждено Microsoft) - Обновление проекта до.NET4 решило проблему.......

Другие вопросы по тегам