1

ユーザーが外国の名前を入力すると、検証エラーが発生します。例は次のとおりです。

System.Web.HttpRequestValidationException:潜在的に危険なRequest.Form値がクライアントから検出されました(ctl00 $ pageContent $ txtName ="Pedroúlogo")。

ここで、úはúとして翻訳されています。(もちろんスペースなし)

これらの外国文字は受け入れ可能であり、検証エラーを引き起こしてはなりません。ASP.NET検証でUTF-8ではなくUTF-16を使用して検証する必要があります

多くのWebサイト、ブログ、およびフォーラムは、単に検証をオフにするように言っています。(つまり、ValidateRequest = "false")

検証をオフにせずにこれを回避する方法はありますか?このアプリケーションでは、検証をオフにすることはできません。

ありがとう、ジェフ

4

2 に答える 2

1

リクエスト検証メカニズムを微調整することは実際には不可能です。それは一種のハードコーディングされています。無効にしたくない理由はわかりません。ユーザーから取得したすべてのもののサニタイズとHTMLエンコードを処理し、ページに表示したい場合(ASP.NET要求の検証に関係なく、とにかく実行する必要があります)、それほど必要ありません。

于 2009-05-15T17:50:43.810 に答える
0

私はこの問題を抱えていました。

それを回避する方法は、投稿にヒットする前に、javascript で入力をサニタイズすることです。

いくつかのjavascriptについては、同様の質問に対するこのスタックオーバーフローの回答を参照してください

また、これはこのstackoverflowの質問(上記のリンク)のほぼ複製です

于 2009-05-15T17:59:11.950 に答える