「インターネットアプリケーション」テンプレートを使用して、新しいASP.NET MVC 3 / .NETFramework4.0サイトを作成しました。Nugetを使用してWindowsAzureWebロール(MVC3)パッケージをインストールし、アクセス制御サービスのウォークスルーに従ってWindowsLiveIDとGoogle認証をセットアップしました。
すぐに、「潜在的に危険なRequest.Form値がクライアントから検出されました」というエラーが発生し、Windows IdentityFoundationwikiの記事に従って解決を試みました。残念ながら、私が試したことはありません。
ルートweb.configとViews\web.configの両方で設定
<httpRuntime requestValidationMode="2.0"/>
します<pages validateRequest="false">
SampleRequestValidator
WIF SDKからプロジェクトにコピーし<httpRuntime requestValidationType="SampleRequestValidator"/>
、両方のweb.configsで設定します
私もこれらのバリエーションを試しましたが、成功しませんでした。
何か案は?
完全な例外は次のとおりです。
例外の詳細:System.Web.HttpRequestValidationException:潜在的に危険なRequest.Form値がクライアントから検出されました(wresult = " <t:RequestSecurityTo...
")。
説明:要求の検証により、潜在的に危険なクライアント入力値が検出され、要求の処理が中止されました。この値は、クロスサイトスクリプティング攻撃など、アプリケーションのセキュリティを危険にさらそうとしていることを示している可能性があります。ページがアプリケーション要求の検証設定を上書きできるようにするには、httpRuntime構成セクションのrequestValidationMode属性をrequestValidationMode="2.0"に設定します。例:<httpRuntime requestValidationMode="2.0" />
。<pages>
この値を設定した後、Pageディレクティブまたは構成セクションでvalidateRequest = "false"を設定することにより、要求の検証を無効にできます。ただし、この場合、アプリケーションですべての入力を明示的にチェックすることを強くお勧めします。詳細については、 http: //go.microsoftを参照してください。
スタックトレース:
[HttpRequestValidationException(0x80004005):潜在的に危険なRequest.Form値がクライアントから検出されました(wresult = " <t:RequestSecurityTo...
")]
System.Web.HttpRequest.ValidateString(String value、String collectionKey、RequestValidationSource requestCollection)+8755668 System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc、RequestValidationSource requestCollection)+122 System.Web.HttpRequest.get_Form()+114 Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.IsSignInResponse(HttpRequest request)+75 Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.CanReadSignInResponse(HttpRequest request、Boolean onPage)+205 Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.CanReadSignInResponse(HttpRequest request)+41 Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.OnAuthenticateRequest(オブジェクト送信者、EventArgs args)+117 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+148 System.Web.HttpApplication.ExecuteStep(IExecutionStep step、Boolean&completedSynchronously)+75