由于在.net中,Request时出现有HTML或javascript等字符串时,系统会认为是危险性值。立马报错。
解决方案一:
在.aspx文件头中加入这句:
<%@ Page validateRequest="false" %>
解决方案二:
修改web.config文件:
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
因为validateRequest默认值为true。只要设为false即可。
==========
如果未关闭ValidateRequest时,用以下asp.net代码进行危险捕获和提示:
PRotected void Page_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
if (ex is HttpRequestValidationException)
{
Response.Write("输入的内容中有危险字符,比如<>等");
Server.ClearError(); // 如果不ClearError()这个异常会继续传到application_Error()。
}
}
//检查代码,把代码转义成html代码形式
protected void Button1_Click(object sender, EventArgs e)
{
// 将输入字符串编码,这样所有的HTML标签都失效了。
StringBuilder sb = new StringBuilder(HttpUtility.HtmlEncode(ftbContent.Text));
// 然后我们选择性的允许<b> 和 <i>
sb.Replace("<b>", "<b>");
sb.Replace("</b>", "");
sb.Replace("<i>", "<i>");
sb.Replace("</i>", "");
ftbContent.Text = sb.ToString();
}
新闻热点
疑难解答