Сделать <h1> </h1> с помощью C # - PullRequest
2 голосов
/ 18 ноября 2010

Я пишу этот код в VS (C # и ASP.net):

<code>using (StreamWriter streamWriter = File.CreateText(@"Example.aspx"))
        {
                streamWriter.WriteLine( "<pre>" + TextBox2.Text + "
");}

Этот код открывает файл 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>").

Ответы [ 3 ]

5 голосов
/ 18 ноября 2010

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/

2 голосов
/ 18 ноября 2010

Проблема в том, что ASP.NET фильтрует опасные запросы (те, которые содержат символы, такие как < и >). Вы можете отключить эту проверку, указав ValidateRequest="false" в объявлении @Page. Конечно, если вы делаете это, вы должны полностью понимать последствия, так как теперь ваш сайт открыт для хакеров. В этом случае пользовательский ввод не подвергается санитарной обработке, и вам следует убедиться, что он правильно закодирован, если вы решите написать его обратно на странице.

0 голосов
/ 18 ноября 2010

В дополнение к добавлению ValidateRequest = "false", как предлагает Дарин, вам необходимо добавить в ваш файл web.config в разделе .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...