一百分求XML问题 望高手笑纳
我用程序生成一个XML文件,可是只要在TEXTBOX输入如:<br><p><img>之类的标记,一点确定按钮就出错。错误信息如下:
“/Asp.Net10”应用程序中的服务器错误。
--------------------------------------------------------------------------------
从客户端(Message="...AAAAAAAA <BR>")中检测到有潜在危险的 Request.Form 值。
说明: 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示危及应用程序安全的尝试,如跨站点的脚本攻击。通过在 Page 指令或 配置节中设置 validateRequest=false 可以禁用请求验证。但是,在这种情况下,强烈建议应用程序显式检查所有输入。
异常详细信息: System.Web.HttpRequestValidationException: 从客户端(Message="...AAAAAAAA <BR>")中检测到有潜在危险的 Request.Form 值。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
堆栈跟踪:
[HttpRequestValidationException (0x80004005): 从客户端(Message="...AAAAAAAA
<BR>")中检测到有潜在危险的 Request.Form 值。]
System.Web.HttpRequest.ValidateString(String s, String valueName, String collectionName) +230
System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, String collectionName) +99
System.Web.HttpRequest.get_Form() +121
System.Web.UI.Page.GetCollectionBasedOnMethod() +70
System.Web.UI.Page.DeterminePostBackMode() +47
System.Web.UI.Page.ProcessRequestMain() +2106
System.Web.UI.Page.ProcessRequest() +218
System.Web.UI.Page.ProcessRequest(HttpContext context) +18
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute() +179
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +87
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573
这是我的CS文件:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Xml;
namespace Asp.Net10
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox Title;
protected System.Web.UI.WebControls.TextBox Message;
protected System.Web.UI.WebControls.Button OKbut;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.OKbut.Click += new System.EventHandler(this.OKbut_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void OKbut_Click(object sender, System.EventArgs e)
{
string Titlestr,Messagestr,xmlname,filetype;
Titlestr=Title.Text;
Messagestr=Message.Text;
xmlname=DateTime.Now.ToString("yyyyMMddHHmmss");
filetype=".xml";
xmlname+=filetype;
//****************************************************************************
XmlDocument doc=new XmlDocument();
string sXml="<Topic>" +
"<Issue>" +
"<PostUserNickName></PostUserNickName>"+
"<Content></Content>"+
"</Issue>" +
"</Topic>";
doc.LoadXml(sXml);
XmlDeclaration dec=doc.CreateXmlDeclaration("1.0","GB2312",null);
string PItext = "type='text/xsl' href='2.xsl'";
XmlProcessingInstruction pi=doc.CreateProcessingInstruction("xml-stylesheet",PItext);
doc.InsertBefore(dec,doc.DocumentElement);
doc.InsertBefore(pi,doc.DocumentElement);
doc.DocumentElement.ChildNodes[0].ChildNodes[0].InnerText=Titlestr.ToString();
XmlCDataSection CDs=doc.CreateCDataSection(Messagestr.ToString());
doc.DocumentElement.ChildNodes[0].ChildNodes[1].AppendChild(CDs);
doc.Save(Server.MapPath(xmlname));
}
}
}