ナビゲーション リンクのスキップトップページ > コードの破片から > タグが含まれる文字列
▼ タグが含まれる文字列 ▼

  TextBox Webコントロールに "<b>Test</b>" 等と入力して、Labelにそのテキストを表示させようとすると、デフォルトでは HttpRequestValidationException が発生してしまいます。例外を発生させない為には ValidateRequest="false" とする必要があります。

タグが含まれる文字列

♣ 初期設定

    TextBoxには 「<b>Test</b>」 を入力します。


♣ aspxファイル

<%@ Page language="c#" ValidateRequest="false" Inherits="Replace" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
<html>
    <head>
        <title>WebForm1</title>
    </head>
    <body>
        <form id="Form1" method="post" runat="server">
            <asp:label id=Label1 runat="server" /><br>
            <asp:TextBox id="TextBox1" runat="server" /><br>
            <asp:Button id="Button1" runat="server" Text="Button" />
        </form>
    </body>
</html>


♣ csファイル

using System;

public class Replace : System.Web.UI.Page
{
    protected System.Web.UI.WebControls.Button Button1;
    protected System.Web.UI.WebControls.TextBox TextBox1;
    protected System.Web.UI.WebControls.Label Label1;

    private void Page_Load(object sender, System.EventArgs e)
    {
        this.Button1.Click +=new EventHandler(Button1_Click);
    }

    private void Button1_Click(object sender, System.EventArgs e)
    {
        this.Label1.Text = this.TextBox1.Text;
    }
}


♣ 実行例

Test


  但し、クロスサイトスクリプティング攻撃が行われる場合が否めないので ValidateRequest="false" にする場合は細心の注意が必要です。そもそも、基本的にタグは利用せず、太字や斜体等をどうしても使いたいと言う場合には代替文字を用意する方法が一般的です。なお「<b>Test</b>」と表示させる場合は <を &lt;、 > を &gt;と置き換える事で正しく出力されます。

Continue
ナビゲーション リンクのスキップトップページ > コードの破片から > タグが含まれる文字列

情報オリンピック[2]
♥ 2009年07月04日 13:39:15

2008年ですね。[1]
♥ 2008年01月01日 00:00:00

自由なスレ[3]
♥ 2007年09月22日 20:51:58

2007年ですね。[1]
♥ 2007年01月01日 00:00:00

こみゅぷらす発足[1]
♥ 2006年12月01日 12:01:23


RSS : FooPah!の更新情報
RSS : 掲示板全体の投稿情報
Copyright(C)2001-2009 FooPah!, All rights reserved.