18

ユーザーが 1 つの TextBox だけに HTML を入力できるようにしたいと考えています。ValidateRequest保護を解除するためにページ ディレクティブを false に変更できることを理解しています。

これにより、ページ上の任意の TextBox に HTML を入力できるようになると思います。ValidateRequest="false"単一のコントロールのみに適用する方法はありますか?

助けてくれてありがとう。

4

3 に答える 3

19

いいえ、リクエストの検証はリクエスト全体または何も対象外です。

入力の検証について無知な開発者を保護するために、検証がデフォルトとして追加されました。すべての入力を安全でないものとして扱う必要があることがわかっていて、入力から使用するデータを適切にエンコードして SQL インジェクションやクロスサイト スクリプティングなどから身を守る方法を知っている場合は、検証をオフにすることができます。

編集:

更新: .NET 4.5 では、ページのグローバル検証からコントロールを除外できるValidateRequestModeプロパティが追加されました。

于 2010-03-18T01:10:55.523 に答える
0

ValidateRequest をオフにして、このメソッドを使用して個々のコントロール/パラメーターからマークアップを削除してみてください。

public static string RemoveMarkUp(this string s) {
   return Regex.Replace(s, @"<[a-zA-Z\/][^>]*>", string.Empty);
}
于 2010-03-18T01:28:01.140 に答える