0

フレームワーク4.0を使用してMVCasp.netアプリを継承しました。

「潜在的に危険なRequest.Form値がクライアントから検出されました」という恐ろしいエラーが発生し、すべての調査で、これで修正できると信じています。

<system.web>
    <httpRuntime requestValidationMode="2.0" />
    <pages validateRequest="false" />
</system.web>

ただし、それをweb.configに追加しても、エラーが発生します。私はここで私のロープの終わりにいます、私は何が欠けていますか?

4

3 に答える 3

1

あなたがしたことに加えて、あなたはまたあなたのメソッドをValidateInput属性で飾らなければなりません。

[ValidateInput(false)]
public ActionResult MyActionMethod(string myParameter)
{
    // Method implementation goes here... 
}

別の方法もありますが、サイト全体の検証を処理する場合は、独自のリクエストバリデーターを実装し、それをweb.configにバインドできます。完全に実装する方法については、このブログ投稿をご覧ください。

基本的に、から継承するクラスを作成し、RequestValidatorそれをweb.configに接続します。

<httpRuntime requestValidationType=”Globals.CustomRequestValidation”/>

うまくいけば、これが役立ちます!

于 2012-08-30T18:36:47.183 に答える
0

別のアプローチを取る。でhttpRuntime、カスタム検証クラスをポイントします。このようにして、バリデーターが処理パイプラインの開始時に単一のリクエストごとに起動されるため、着信リクエストを完全に制御できます。

特に、バリデーターを returntrueに実装すると、すべての受信リクエストを無条件に受け入れることになります。

http://msdn.microsoft.com/en-us/library/system.web.util.requestvalidator.aspx

于 2012-08-30T18:29:41.377 に答える
0

最も簡単な方法は、必要な文字を検証システムから削除することです。

要素requestPathInvalidCharacters属性とそのデフォルト値を次に示します。httpRuntime

<httpRuntime requestPathInvalidCharacters="&lt;,&gt;,*,%,&amp;,:,\" />
<!-- the unescaped characters are: < > * % & : \  -->

承認したい文字を削除すると、リクエストが機能します。

于 2016-07-09T14:15:56.090 に答える