1

アプリケーション ルート ディレクトリからの DropdownList にある .aspx ページのリストです。編集用の RichTextBox に .aspx ページ全体のコンテンツを表示しています。しかし、[保存] ボタンをクリックすると、エラーが表示されます: 潜在的に危険な Request.Form 値がクライアントから検出されました (ctl00$MainContent$TextBox1="...xt" %>

サンプルコードはこちら:

<asp:TextBox ID="TextBox1" runat="server" Height="314px" TextMode="MultiLine" 
        Width="771px"></asp:TextBox>

<asp:Button ID="BtnSaveContent" runat="server" onclick="BtnSaveContent_Click" 
        Text="Save Content" />

In .aspx.cs file:
private void GetFilesNames()
    {


        TextReader tr = new StreamReader(Server.MapPath("") + "/CopyText.aspx");
        TextBox1.Text = tr.ReadToEnd();
        // close the stream
        tr.Close();
    }


    protected void BtnSaveContent_Click(object sender, EventArgs e)
    {
        WritetoFile();
    }

    private void WritetoFile()
    {
        TextWriter tw = new StreamWriter(Server.MapPath("") + "/CopyText.aspx");

        // write a line of text to the file
        tw.WriteLine(TextBox1.Text);

        // close the stream
        tw.Close();
    }

ページ ヘッダー:

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" validateRequest="false" CodeFile="CopyText.aspx.cs" Inherits="CopyText" %>

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" validateRequest = false
    CodeFile="Default.aspx.cs" Inherits="_Default" %>

また、ページ レベルとコントロール レベルで validateRequest="false" を試しました。しかし、うまくいきません!このエラーを解決するためのアイデアはありますか? 助けてください!

4

1 に答える 1

0

あなたが必要としているのは正しいですvalidateRequest = false

ただし、これが.Net 4.0の場合は、 :requestValidationMode="2.0"のhttpRuntime構成セクションにも追加する必要があります。web.config

<system.web>
  <httpRuntime requestValidationMode="2.0"/>
</system.web>
于 2012-12-18T12:10:17.790 に答える