Ошибка принудительного подтверждения текстового поля - PullRequest
0 голосов
/ 22 ноября 2011

Vista, визуальный веб-разработчик, экспресс 2010, c #, asp.net, веб-формы.Запуск программы с помощью Ctrl-F5.Я единственный человек, который когда-либо будет запускать эту программу ... и она будет работать только на моем ноутбуке с использованием локальной базы данных.

Написание приложения для загрузки веб-страниц, просмотра их (некоторый анализ), зарегистрируйте некоторые результаты.Я нашел код для загрузки страниц - работает хорошо.Затем я устанавливаю свойство text текстового поля равным строковому содержимому страницы.Эта часть также работает.Затем я снова запустил код, НО содержимое текстового поля проверяется и выдает сообщение об ошибке.

A potentially dangerous Request.Form value was detected from the client (ctl00$MainContent$tbPageContents="
<!DOCTYPE HTML PUBLI..."). 

Я могу запускать код снова и снова без проблем - пока я неотображать результаты в текстовом поле.Я попробовал несколько разных решений:

  1. Я попробовал атрибут enabled = "false" в текстовом поле ... это позволяет мне просматривать первую часть кода, но так как текстовое полене включен, я не могу прокрутить вверх и вниз и посмотреть на файл.Так что это на самом деле не решает проблему.

  2. Я попытался установить validateRequest = "false" в директиве страницы и в system.web (согласно http://www.asp.net/learn/whitepapers/request-validation),, но такнасколько я могу судить, это не имеет никакого эффекта. То есть я все еще получаю сообщение об ошибке.

  3. Я пытался использовать html-кодирование содержимого строки, прежде чем поместить их в текстовое поле.дисплей ... но это не решает проблему, потому что она терпит неудачу на следующей итерации проблемы.

  4. Я думал о перехвате ошибки и ее игнорировании, но проверка кажетсяпроизойдет до того, как он выполнит мой код.

На самом деле мне НЕ нужно печатать страницу в окне, чтобы выполнить анализ, но было бы очень полезно, если бы я мог посмотретьна все это сразу или во фрагментах. Я мог бы просто сделать источник страницы из браузера. Я не уверен ... возможно, это предпочтительное решение.

Я действительно удивлен, что вариант # 2не сработало, так как это кажется рекомендуемым решением.

Вот директива страницы, которую я использую:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="wan._Default" validateRequest="false" %>

Что еще нужно сделать, чтобы остановить validateRequest?

Ответы [ 2 ]

2 голосов
/ 22 ноября 2011

Вы также должны использовать <httpRuntime requestValidationMode="2.0" /> в вашем файле web.config.Это указывает ASP.NET изменить режим проверки на версию 2.0.

Вам также может понравиться этот вопрос .

0 голосов
/ 22 ноября 2011

Если это .NET 4, вам также может понадобиться добавить <httpRuntime requestValidationMode="2.0" /> в ваш web.config

...