1

テキストフィールドとAutoPostBackのHTML文字に問題があります。

私は以下のようなものを持っています:

<asp:FormView ID="FormView1" runat="server" 
              DataKeyNames="ID" DataSourceID="SqlDataSource4"
              ForeColor="#333333" DefaultMode="Edit" 
              HorizontalAlign="Center" Font-Size="X-Small"
              Width="100%" OnDataBound="FormView1_DataBound">
      <asp:TextBox ID="fooTextBox" runat="server" 
                   Width="100%" Rows="4" TextMode="MultiLine"
                   CssClass="tr4" Text='<%# Bind("foo") %>' AutoPostBack="true"
                   OnTextChanged="ChangedRecord" />
</asp:FormView>

これで、ユーザーがテキストボックスに次のようなものを入力すると

<foo>

テキストフィールドのHTML文字が原因で、エラー500がスローされます。

AutoPostBack経由で送信する前にこれを管理するにはどうすればよいですか?

4

2 に答える 2

2

これはPageのValidateRequestプロパティによるものです (デフォルト値はtrue )。タグ、スクリプトなど (潜在的に危険な値) を許可できるように、ValidateRequest をオフにすることができます。

アプリケーションが.net Framework バージョン 4.0を対象とする場合は、web.config に次のセクションを追加します。

<system.web>
    <compilation debug="true" targetFramework="4.0" />
    <httpRuntime requestValidationMode="2.0" />
</system.web>
于 2012-08-01T04:04:42.817 に答える
0

html/xml をテキスト ボックスに入力する必要がある場合、それを処理する最善の方法は、入力 をhtml エンコードすることです。これにより、フォーム投稿が安全になります<foo>&lt;foo&gt;使用するために送信した後、デコードする必要があることに注意してください。次のリンクを使用して、html エンコーディングを検査します。http://www.opinionatedgeek.com/DotNet/Tools/HTMLEncode/Encode.aspx/

于 2012-08-01T04:10:47.453 に答える