首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用C#制作<h1> </h1>

用C#制作<h1> </h1>
EN

Stack Overflow用户
提问于 2010-11-18 18:54:25
回答 3查看 701关注 0票数 2

我用VS (C#和ASP.net)编写以下代码:

代码语言:javascript
复制
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时,我得到了同样的错误!我该怎么办?提前谢谢。我的错误是:

代码语言:javascript
复制
A potentially dangerous Request.Form value was detected from the client (ctl00$ContentPlaceHolder1$TextBox2="<h1> </h1>").
EN

回答 3

Stack Overflow用户

发布于 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/

票数 5
EN

Stack Overflow用户

发布于 2010-11-18 18:57:56

问题是ASP.NET会过滤危险的请求(包含<>等字符的请求)。您可以通过将ValidateRequest="false"放在@Page声明中来禁用此验证。当然,如果你这样做,你应该确保完全了解后果,因为现在你的网站是对黑客开放的。在这种情况下,用户输入不会被清理,如果您决定将其写回页面,则应确保对其进行正确编码。

票数 2
EN

Stack Overflow用户

发布于 2010-11-19 04:22:29

除了像Darin建议的那样添加ValidateRequest="false“之外,您还需要在web.config的部分中添加< httpRuntime requestValidationMode="2.0”/>。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4213980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档