尝试处理包含<。
等字符的某些用户输入时我确实希望清理此输入并允许它显示并保证XSS安全。
我收到此ajax错误,即使我没有到达后面的vb代码来清理输入。
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 :(得分:0)
您可能需要将ValidateRequest="false"
添加到页面的@Page指令(或web.config文件中的<pages>
元素。这将禁用ASP.NET时的XSS检查。它遇到了&lt;&gt;字符。
如果您仍然从PageRequestManager获得500个错误,请尝试暂时将控件移到UpdatePanel之外,以便更好地检查运行时错误。