为什么在抛出HttpRequestValidationException时ASP.NET为什么不在Global.asax.cs中输入Application_Error?

时间:2018-06-25 12:57:38

标签: c# asp.net-mvc security exception-handling

我试图防止当用户输入例如输入字段中的尖括号:

  

[System.Web.HttpRequestValidationException]一个潜在的危险   从客户端检测到Request.Form值(消息=“

我在posts like this one中了解到,我应该能够在void Application_Error(object sender, EventArgs e)文件中的Global.asax.cs方法中捕获并处理此错误,例如我有以下代码:

protected void Application_Error(object sender, EventArgs e)
{
    Exception ex = Server.GetLastError();

    if (ex is HttpRequestValidationException)
    {
        Response.Clear();
        Response.StatusCode = 200;
        Response.Write(@"<html><body>HTML is not allowed.</body></html>");
        Response.End();
    }
}

但是无论我在void Application_Error(object sender, EventArgs e)方法中使用什么代码,代码执行都不会输入它,而是像以前一样简单地输出原始错误。

是什么导致代码执行无法进入void Application_Error(object sender, EventArgs e)方法?

注意:我的Web.config中没有将自定义错误设置为RemoteOnly,这似乎是Is global.asax Application_Error event not fired if custom errors are turned on?

中的问题

0 个答案:

没有答案