Проверка запроса - ASP.NET MVC 2
Изменена ли проверка запроса для ASP.NET MVC 2, точнее, не проверяется?
Я сделал следующее:
Web.configs(в каталоге приложения и в каталоге представлений)
<pages
validateRequest="false"
Атрибут контроллера/действия
[ValidateInput(false)]
В директиве @Page View
ValidateRequest="false"
Страница все еще проверяется, исключение генерируется при размещении содержимого HTML.
ОБНОВЛЕНИЕ
Создал новое приложение ASP.NET MVC 2, и я изменил индекс Home Controller на этот
[ValidateInput(false)]
public ActionResult Index(string InputText)
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
и моя страница просмотра
<% using(Html.BeginForm()){ %>
<%= Html.TextBox("InputText") %>
<input type="submit" />
<% } %>
И по-прежнему та же проблема, генерируется исключение.
Ответы
Ответ 1
В следующий раз я должен прочитать ошибку более внимательно:
Чтобы страницы могли переопределять параметры проверки запроса приложения, set requestValidationMode = "2.0" в разделе конфигурации. После установки этого значения вы можете отключить проверку запроса на установка validateRequest = "false"
Я помещаю это в приложение web.config
<system.web>
<httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="" />
</system.web>
и он работал.
Update:
Я запускал ASP.NET 4, поэтому: P
Ответ 2
Вставьте обязательное предупреждение о XSS здесь.
То, что вы украсили контроллер (или действие) с помощью ValidateInputAttribute
, должно быть достаточно, так как все проверки выполняются на этом уровне контроллера в ASP.NET MVC
Я только что попробовал это сейчас в действии, и он возвращает приятное злое предупреждение(), когда я его выводю, поэтому я рискну предположить, что там что-то еще происходит.
У вас есть HandleErrorAttribute
где угодно?