私は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を有効にするとうまくいかない
注意。すべてなし
が正常に動作します。 ASP.NET MVCテンプレートを使用して
- スタート新しいASP.NETプロジェクト(4.5.2)
[OutputCache(Duration = 1)]
- 実行http://localhost:(port)/?test=%3Cscript%3E
更新 本当に簡単reproduciableはそう
結果: 潜在的に危険な要求、それにもかかわらず、あなたがこのパラメータでythingします。
'AllowHtml]'は通常、コントローラではないモーダルプロパティになります。 _プロパティの要求の検証をスキップして、モデルバインド中にHTMLマークアップを含める要求を許可します._ – zgood
@zgood - 良い叫びが更新されました。 –
こんにちは@DarrenDavies、あなたの迅速な答えに感謝します。事は私の行動がうまくいっていることです(私は値を読んでいません)。それはそれを処理することができないように見えるOutputCacheです - StackTraceを見てください。 –