Проверка запроса - 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
установить где-нибудь?