处理“潜在危险的Request.Form值......”

时间:2009-12-11 20:11:18

标签: asp.net error-handling application-error

处理错误的最佳方法是什么,例如

  

从客户端“

检测到潜在危险的Request.Form值
在ASP.NET中

我想继续进行验证,因为我的表单没有正当理由允许HTML字符。但是,我不太确定如何以更友好的方式处理此错误。我尝试在Page_Error中处理它,但据我所知,这发生在较低级别的部分,因此Page_Error函数永远不会触发。

因此,我可能不得不在我的Application_Error文件中使用Global.asax。如果这是处理该错误的唯一方法,有没有办法专门处理这个错误?我不想以同样的方式处理所有应用程序错误。

由于

3 个答案:

答案 0 :(得分:22)

您有两种选择:

// Editing your global.asax.cs
public class Global : System.Web.HttpApplication
{
    protected void Application_Error(object sender, EventArgs e)
    {
        Exception lastError = Server.GetLastError();
        if (lastError is HttpRequestValidationException)
        {
            Response.Redirect("~/RequestValidationError.aspx");
        }
    }
}

或者

// Editing your CUser.aspx.cs
public partial class CUser : System.Web.UI.Page
{
    protected override void OnError(EventArgs e)
    {
        Response.Redirect("~/RequestValidationError.aspx");
        Context.ClearError();
    }
}

答案 1 :(得分:3)

您不想在Global.asax上添加不必要的行李。如果您对这是由虚假数据输入引起的感到满意,那么无论它来自何处,都要处理输入:

http://codersbarn.com/post/2008/11/01/ASPNET-Data-Input-Validation.aspx

专注于错误原因: - )

答案 2 :(得分:1)

您可以在Application_Error中使用Server.GetLastError()来获取抛出的异常,检查异常,并根据需要进行响应(重定向到页面等)