Проверка запроса - 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" />
<% } %>

И все та же проблема, исключение.

2 ответа

Решение

Я должен прочитать ошибку более внимательно в следующий раз:

Чтобы страницы могли переопределять параметры проверки запросов приложения, установите requestValidationMode="2.0" в разделе конфигурации. После установки этого значения вы можете отключить проверку запроса, установив validateRequest="false"

Я положил это в приложение web.config

<system.web>
  <httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="" />
</system.web>

и это сработало.

Обновить:

Я работал под управлением ASP.NET 4, вот почему:P

Вставьте обязательное предупреждение о XSS здесь.

То, что вы украсили контроллер (или действие) с ValidateInputAttribute должно быть достаточно, так как вся проверка выполняется на этом уровне контроллера в ASP.NET MVC

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

У тебя есть HandleErrorAttribute установить где-нибудь?

Другие вопросы по тегам