簡體   English   中英

ASP.NET Textbox省略雙引號后的字符串

[英]ASP.NET Textbox omits the string after the double quote

我在頁面中添加了一個ASP.NET文本框,並且確實有下一個和上一個按鈕。 我輸入了字符串,在文本框中說Hello“ World” 我單擊了下一步按鈕,它將顯示審閱頁面(不可編輯),所有數據都存儲在sessioin中。 之后,我單擊上一個按鈕,該按鈕應該顯示輸入字段(編輯頁面)。 在此期間,我從會話中獲取數據並將其顯示回ASP.NET文本框。

當我看到該頁面時,雙引號之后輸入的內容將從ASP.NET文本框中刪除。 也就是說,我只能看到Hello

我的要求是,我應該允許用戶輸入雙引號。

有沒有什么辦法解決這一問題???

ASP.NET不會在文本框中刪除引號,因此我建議發布代碼以供審核。

但是,在某些情況下,在輸入字段中允許使用引號可以觸發請求驗證,在這種情況下,您會看到有關潛在危險請求的非常具體的錯誤。

說到這,應該檢查允許引號的文本字段是否受到XSS攻擊。

現在重現您遇到的情況。 這是由於在value屬性中使用雙引號引起的,

它將與在文本框中也包含雙引號的值沖突。 所以你應該

在輸出語法中將雙引號更改為單引號。

您可以嘗試以下代碼:

output.Write(string.Format("<input name=\"{0}\" id=\"{0}\" type=\"text\" value=\'{1}\'{2}/>", UniqueID, Text, args));

我之前沒有遇到過這個問題,用戶可以在文本框中輸入雙引號。

您可以檢查是否有一些程序邏輯來過濾引號或調試代碼以

找到原因。 下面是一個簡單的測試代碼。

<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:Button
    ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
    <asp:Button ID="Button2" runat="server" Text="Button" onclick="Button2_Click" />

</div>
</form>

protected void Button1_Click(object sender, EventArgs e)
{
    Session.Add("KK",this.TextBox1.Text);
}
protected void Button2_Click(object sender, EventArgs e)
{
    this.TextBox1.Text = Session["KK"] as string;
}

如果覆蓋“渲染”,您還可以利用將其輸出到HtmlTextWriter ,該方法為創建html提供了一些幫助。

盡管下面的示例肯定比您的方法更為冗長,但它還將使輸出了解發生了什么,並允許HtmlTextWriter(輸出)插入值等。然后,HtmlTextWriter將確保對值執行正確的轉義。 。

  protected override void RenderContents(HtmlTextWriter output)
  {
        output.AddAttribute(HtmlTextWriterAttribute.Name, UniqueID);
        output.AddAttribute(HtmlTextWriterAttribute.Type, Text);
        output.AddAttribute(HtmlTextWriterAttribute.Value, Value);
        output.RenderBeginTag(HtmlTextWriterTag.Input);
        output.RenderEndTag();
  }

或者,您可以使用System.Web.HttpUtility.HtmlEncode避免字符值等問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM