如何在Global.asax.cs文件中的Application_BeginRequest事件中验证Request.RawUrl?

时间:2013-10-23 11:50:25

标签: asp.net httpcontext request-validation rawurl

有些机器人正在请求www.example.com/test-</p><p>they-are-angry...之类的网址,这会在我的asp.net应用程序中创建A potentially dangerous exception

我需要验证HttpContext.Current.Request.RawUrl Application_BeginRequestGlobal.asax.cs事件中的validateRequest="false",如果它无效,我将重定向到另一个错误页面。

我不想设置{{1}}或requestValidationMode="2.0",但如果Request.RawUrl无效,则想要重定向到特定的错误页面。

如何实现这一目标?是否有任何Asp.Net预定义方法来验证此URL?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

如果您只想重定向到错误页面,只需配置customErrors或实现全局错误处理程序,详见existing postMSDN

但是,如果您希望延迟验证直到稍后,例如Application_BeginRequest,您可以禁用请求验证并明确调用它,如Imran's blog中所述:

1。设置requestValidationMode =“2.0”

2。调用Request.ValidateInput()

protected void Application_BeginRequest()
{
    Request.ValidateInput();
    var q = Request.QueryString;
}