2011-12-24 155 views
0

嘗試處理某些包含字符的用戶輸入,如<。Sys.WebForms.PageRequestManagerServerErrorException:發生未知錯誤

我確實想要清理這個輸入並允許它顯示並且是XSS安全的。

即使我還沒有達到清理輸入的vb代碼,我仍然收到這個ajax錯誤。

Sys.WebForms.PageRequestManagerServerErrorException:處理服務器上的請求時發生未知錯誤。從服務器返回的狀態代碼是:500

輸入由一個btnNoteSave控制,它是一個updatepanel觸發器。

   <div style="width: 100%; float: left"> 
       <div> 
        <asp:Button ValidationGroup="valgroup1" ID="btnNoteSave" runat="server" Text="Save" 
         class="ui-state-default ui-corner-all float-left ui-button" /> 
       </div> 
      </div> 
      <div style="width: 100%; float: left"> 
       <asp:UpdatePanel ID="pnlNotes" runat="server"> 
        <ContentTemplate> 
         <div id="content_container" style="margin-top: 85px"> 
          <asp:Label ID="lblNotes" runat="server"></asp:Label> 
         </div> 
        </ContentTemplate> 
        <Triggers> 
         <asp:AsyncPostBackTrigger ControlID="btnNoteSave" EventName="click" /> 
        </Triggers> 
       </asp:UpdatePanel> 
      </div> 

我試過在後面的代碼中清理我的輸入,但我甚至沒有達到那麼遠。錯誤是當它到達這裏時拋出的ajax錯誤。

Protected Sub btnNoteSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnNoteSave.Click 

.... 

     newnote.Note = Server.HtmlEncode(txtNote.Text) 
.... 

End Sub 

任何想法如何處理這些問題?

感謝,

回答

0

你可能需要添加ValidateRequest="false"到你的頁面的@ Page指令(或在你的web.config文件中的<pages>元素。這將禁用XSS通過ASP.NET檢查被觸發時,遇到<>字符。

如果你仍然得到來自PageRequestManager 500錯誤嘗試暫時將在UpdatePanel外的控件,以便可以更好地檢查運行時錯誤。

相關問題