HTML抓取:请求的表单身份验证失败。提供的门票已过期

时间:2010-09-01 09:19:45

标签: asp.net xml httpwebrequest dotnetnuke ntlm

我们在 DotNetNuke 系统中使用的 ActiveForums 模块在XML中存在 RSS提要的错误。它没有正确编码&符号,它将它们保留为&而不是将它们编码为&

我已经向公司报告了这个错误,但同时我还需要修复。所以我所做的就是创建一个中间页面,通过System.Net.HttpWebRequest.Create(url)向RSS提要请求,并执行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
事件消息:请求的表单身份验证失败。原因:提供的故障单已过期

0 个答案:

没有答案