asp.net 页面TextBox 当输入有html 标签值,页面有提交动作时.VS会自动Check 此不安全错误.
如:从客户端(ctl00$MainContentPlaceHolder$txtOwner="<d>")中检测到有潜在危险的 Request.Form 值
有两种方法解决:
1.捕获此错误,并以友好的消息提示
//当user 输入不安全的Html标签: 如<td>,系统自动会报安全错误,此方法是捕获此错误!
protected void Page_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
if (HttpContext.Current.Server.GetLastError() is HttpRequestValidationException)
{
HttpContext.Current.Response.Write("輸入內容存在不安全的Html標籤,請輸入合法的字串! <a href=\"javascript:history.back(0);\">返回</a>");
HttpContext.Current.Server.ClearError();
}
}
protected void Page_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
if (HttpContext.Current.Server.GetLastError() is HttpRequestValidationException)
{
HttpContext.Current.Response.Write("輸入內容存在不安全的Html標籤,請輸入合法的字串! <a href=\"javascript:history.back(0);\">返回</a>");
HttpContext.Current.Server.ClearError();
}
}
2. 关闭此功能.
在前台页面上Page 中加上ValidateRequest ="false"
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="BP_ModelSpec_Copy.aspx.cs" Inherits="ProductSpec_BP_ModelSpec_Copy" ValidateRequest ="false"%>