[英]Make <h1> </h1> by C#
我在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>").
默認情況下,asp.net將阻止html代碼作為文本框的輸入,您必須在頁面中設置此屬性ValidateRequest="false"
詳細示例:http: //yourtahir.wordpress.com/2008/03/28/aspnet-未允許-HTML功能於文本boxserver-誤差在應用-A-potentialy危險-requestform -值被檢測到的/
問題是ASP.NET篩選危險請求(包含諸如<
和>
字符的請求)。 您可以通過在@Page聲明中放置ValidateRequest="false"
來禁用此驗證。 當然,如果您這樣做,您應該確保完全了解后果,因為您的網站現在對黑客開放。 在這種情況下,用戶輸入不會被清除,如果您決定將其寫回到頁面上,則應確保正確編碼。
正如Darin建議的那樣,除了添加ValidateRequest =“ false”之外,您還需要在<system.web>部分的web.config中添加<httpRuntime requestValidationMode =“ 2.0” />。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.