ASP.NET 4 リクエストの検証 概要 †ユーザー入力に <script> のような文字を入力できるために、web.config または Page ディレクティブで ValidateRequest="false" に設定すればよいでしたが、ASP.NET 4 では、セキュリティ強化するため、上記の設定が動作できなくなってます。デフォルトで、BeginRequest の前に検証を有効にしているそうです。その結果、aspx ページ要求のみでなく、ASP.NET のすべてのリソースの要求(例えば、クッキー、Web サービスやカスタム HTTP ハンドラによる要求、カスタム HTTP モジュールが読む HTTP 要求のコンテンツ)に対して検証が適用されるとのことです。 方法一 †Web.configに下記のような、RequestValidationDisabled.aspxページのみ、リクエストの検証を無効に設定する <location path="RequestValidationDisabled.aspx"> <system.web> <httpRuntime requestValidationMode="2.0" /> </system.web> </location> 方法二 †カスタマイズのRequestValidatorクラスを作成、リクエストの検証を無効にする using System; namespace Test { class RequestValidatorDisabled : System.Web.Util.RequestValidator { protected override bool IsValidRequestString(System.Web.HttpContext context, string value, System.Web.Util.RequestValidationSource requestValidationSource, string collectionKey, out int validationFailureIndex) { validationFailureIndex = -1; return true; } } } Web.config 内で下記のように設定します。 <httpRuntime requestValidationType="Test.RequestValidatorDisabled" /> 超多機能のアクセス解析が永久無料! コメント: |