我用VS (C#和ASP.net)编写以下代码:
using (StreamWriter streamWriter = File.CreateText(@"Example.aspx"))
{
streamWriter.WriteLine( "<pre>" + TextBox2.Text + "</pre>" );
}这段代码打开example.aspx文件并将TextBox2.text的值写入Example.aspx。但是有一个问题。当我把<h1> </h1>写到Textbox2.text中时,我得到了错误。或者当我将<i> </i>写入textbox2.text时,我得到了同样的错误!我该怎么办?提前谢谢。我的错误是:
A potentially dangerous Request.Form value was detected from the client (ctl00$ContentPlaceHolder1$TextBox2="<h1> </h1>").发布于 2010-11-18 18:57:48
默认情况下,asp.net会阻止html代码作为文本框的输入,您必须在您的页面中设置此属性ValidateRequest="false"详细示例:http://yourtahir.wordpress.com/2008/03/28/aspnet-not-allow-html-in-text-boxserver-error-in-application-a-potentialy-dangerous-requestform-value-was-detected/
发布于 2010-11-18 18:57:56
问题是ASP.NET会过滤危险的请求(包含<和>等字符的请求)。您可以通过将ValidateRequest="false"放在@Page声明中来禁用此验证。当然,如果你这样做,你应该确保完全了解后果,因为现在你的网站是对黑客开放的。在这种情况下,用户输入不会被清理,如果您决定将其写回页面,则应确保对其进行正确编码。
发布于 2010-11-19 04:22:29
除了像Darin建议的那样添加ValidateRequest="false“之外,您还需要在web.config的部分中添加< httpRuntime requestValidationMode="2.0”/>。
https://stackoverflow.com/questions/4213980
复制相似问题