Соскоб HTML: проверка подлинности с помощью форм для запроса не удалась.Срок действия предоставленного билета истек - PullRequest
1 голос
/ 01 сентября 2010

Модуль ActiveForums , который мы используем как часть нашей системы DotNetNuke , содержит ошибку в XML из-за RSS-канала . Он не правильно кодирует амперсанды, он оставляет их как &, а не кодирует их как &

Я сообщил об ошибке в компанию, но пока что мне нужно исправить. Итак, я создал промежуточную страницу, которая отправляет запрос на канал RSS через System.Net.HttpWebRequest.Create(url), а затем выполняет Regex.Replace для замены любых некодированных амперсандов.

Проблема в том, что когда я запускаю код на нашем производственном сервере, я получаю исключение: Удаленный сервер вернул ошибку: (500) Внутренняя ошибка сервера.

Единственная причина, по которой я мог придумать, заключалась в проверке подлинности (поскольку сервер требует NTLM), однако, насколько я могу судить, я правильно выполняю эту часть. Мой код показан ниже:

string html = string.Empty;
string url = "http://intranet.nt.avs/dnn/Default.aspx?tabid=130";

WebResponse response;
WebRequest request = System.Net.HttpWebRequest.Create(url);

request.PreAuthenticate = true;
request.Credentials = System.Net.CredentialCache.DefaultCredentials;

response = request.GetResponse();

using (StreamReader sr = new StreamReader(response.GetResponseStream()) )
{
html = sr.ReadToEnd();
}

// Clean invalid XML
html = Regex.Replace( html, "&(?!amp;|gt;|lt;|quot;|apos;)", "&", RegexOptions.Multiline | RegexOptions.IgnoreCase );

Response.ContentType = "text/xml";
Response.Write( html );

Обновлено: вот что говорит журнал событий
Код ошибки: 4005
Сообщение о событии: проверка подлинности с помощью форм не выполнена. Причина: срок действия билета истек

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...