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 решило проблему.......