Получение ошибки при публикации формы с тегами html в ее полях - PullRequest
0 голосов
/ 28 декабря 2010

Я использую Ajax Control Toolkit 3.5.У меня есть такая форма:

<body>
<form id="form1" runat="server">
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
<div>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        </ContentTemplate>
    </asp:UpdatePanel>
</div>
</form>

И связанный код этой страницы следующий:

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

Когда я пишу, например, "foo" вTextBox1 успешно копирует это в Label1.Но если я напишу какой-либо текст в текстовое поле с некоторыми HTML-тегами, такими как " foo ", я получу следующую ошибку Javascript в строке состояния IE:

alt text

Как я могурешить это?

Заранее спасибо.

1 Ответ

0 голосов
/ 28 декабря 2010

Сразу после публикации этого вопроса мне пришла в голову мысль вынуть поля формы из UpdatePanel и повторить ту же операцию. Бинго! Выдает следующее исключение:

    A potentially dangerous Request.Form value was detected from the client (TextBox1="<b>foo</b>"). 
Description: Request Validation has detected a potentially dangerous client input value, and processing of the request has been aborted. This value may indicate an attempt to compromise the security of your application, such as a cross-site scripting attack. You can disable request validation by setting validateRequest=false in the Page directive or in the configuration section. However, it is strongly recommended that your application explicitly check all inputs in this case. 

Exception Details: System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (TextBox1="<b>foo</b>").

После появления этой ошибки добавление следующего кода в раздел <% @ Page%> страницы решило проблему.

ValidateRequest="false"

Надеюсь, это поможет другим ...

...