AllowHtml с шаблоном PRG в MVC 3 - PullRequest
       3

AllowHtml с шаблоном PRG в MVC 3

0 голосов
/ 03 августа 2011

Я не могу получить атрибут AllowHtml (используется в классе DirtySearch) для работы со следующими действиями:

    public ActionResult NewEntry(string searchIndex, string searchString)
    {
        var model = new SearchResultsModel(loserID, searchIndex, searchString);
        return View(model);
    }

    [HttpPost]
    public ActionResult GetSearchResults(DirtySearch dirtySearch)
    {
        return RedirectToAction("NewEntry", new { searchIndex = dirtySearch.SearchIndex, searchString = dirtySearch.SearchString });
    }

Я получаю потенциально опасный запросЗначение .Path было обнаружено в клиенте (%) ошибка.

Я включил <httpRuntime requestValidationMode="2.0" /> в свой файл Web.config и поместил ModelMetadataProviders.Current = new DataAnnotationsModelMetadataProvider(); в метод Application_Start.

Мне кажется, что я упускаю из виду нечто очевидное.

Ответы [ 2 ]

0 голосов
/ 03 августа 2011

Не подавляйте эту ошибку.Кажется, у вас есть проблемы с безопасностью из-за проблемы с PATH.Какой путь (проверьте fiddler, чтобы вы могли видеть все детали запроса), взятый из: http://blogs.msdn.com/b/marcinon/archive/2010/11/09/mvc3-granular-request-validation-update.aspx

"гранулированная проверка запроса в MVC 3 поддерживает только отключение проверки для формы (и иногда QueryString).будет по-прежнему проверяться, как и остальные коллекции запросов.

Ваш модуль должен получить доступ к значениям запроса с помощью метода System.Web.Helpers.Validation.Unvalidated () (доступен в System.Web.WebPages.dll).) чтобы обойти проверку запроса по умолчанию (это то, что используется механизмом, который позволяет AllowHtml работать). "

0 голосов
/ 03 августа 2011

Вероятно, вы можете устранить эту ошибку, если поместите дополнительный атрибут в узел httpRuntime в вашем web.config:

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

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

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