0

私は持っていMultiline Textboxます。HTML Tagsユーザータイプや検証をサーバー側で実行できるようにしたくありません。助言がありますか?

設定ValidateRequest="true"するとエラーが発生します

潜在的に危険なRequest.Form値がクライアントから検出されました

これも必須ではありません。文字<をチェックして検証を入れようとしましたが、次のように入力できるため、これも適切な検証ではありません。<kanavi and this is not a HTML tag

4

3 に答える 3

1

セットするValidateRequest="false"

inputshowmessageにタグがある場合はサーバーで処理します。

タグを削除できます

 Regex.Replace(source, "<.*?>", string.Empty);

または、それらを保持したい場合はエンコーディングを使用します

于 2012-06-22T11:13:19.997 に答える
0

正規表現で試してください。これはhtmlタグを見つけるためのものです。アプリケーション側で使用してください。

Regex.Match(TextBox.Text, "</?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)/ >");

XDocumentを常にアプリケーション側に使用する別のソリューションがあります。

XDocumentを作成し、それにルートを設定します。

XDocument yourXDocument = new XDocument(new XElement("Root"));

次に、コンテンツをロードします。

yourXDocument.Root = XDocument.Load(TextBox.Text);

次に、再帰関数を使用して、XDocumentのレベルが2つを超えているかどうかを確認します。

もちろん、HTMLタグのみを解析する場合は、すべてのタグを格納する辞書を作成し、テキストボックスの値をそれぞれと比較する必要があると思います。

于 2012-06-22T11:12:25.167 に答える
0

nugetのこのパッケージをご覧ください。HtmlLaundry

サーバーに到達する前にHTMLをクリーンアップするのに役立つはずです。

于 2012-06-22T11:20:54.403 に答える