Я включил OutputCache, и используют следующие атрибуты:OutputCache и потенциально опасное Запрос
[OutputCache]
[ValidateInput(false)]
Но я получаю следующее сообщение об ошибке:
[HttpRequestValidationException (0x80004005): A potentially dangerous Request.QueryString value was detected from the client (pool="lger<br />/for...").]
System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection) +11933898
System.Web.HttpValueCollection.EnsureKeyValidated(String key) +11932776 System.Web.HttpValueCollection.Get(String name) +23 System.Web.Caching.OutputCacheModule.CreateOutputCachedItemKey(String path, HttpVerb verb, HttpContext context, CachedVary cachedVary) +880 System.Web.Caching.OutputCacheModule.OnLeave(Object source, EventArgs eventArgs) +803
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +142 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +92
Почему это происходит? Я не понимаю, почему OutputCachedItemKey необходимо проверить? В любом случае, как отключить это?
Обратите внимание, что это происходит только при включении OutputCache.
Без всего, что хорошо работает.
Update Это кажется очень простой reproduciable:
- Запуск проекта нового ASP.NET с помощью ASP.NET MVC шаблон (4.5.2)
- Добавить
[OutputCache(Duration = 1)]
- пробег http://localhost:(port)/?test=%3Cscript%3E
Результат: Потенциально опасный запрос, несмотря на то, что вы выполняете с этим параметром.
'[AllowHtml]' обычно переходит на модальные свойства, а не на контроллеры. _Получает запрос на включение разметки HTML во время привязки к модели, пропуская проверку запроса для свойства ._ – zgood
@zgood - хороший крик, обновленный. –
Привет @ DarrenDavies, спасибо за ваш быстрый ответ. Дело в том, что мое действие отлично работает (я не читаю значение). Это OutputCache, который, похоже, не в состоянии справиться с этим - см. StackTrace. –