目前,我们正在通过
Application_Error
global.asax.vb
:
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
OurLibrary.HandleError(Me)
End Sub
HandleError
Public Shared Sub HandleError(httpApp As HttpApplication)
''# do some logging
...
''# show some details about the error and information about how to contact us
httpApp.Response.Write(...)
httpApp.Response.StatusCode = 404 or 500
httpApp.Server.ClearError()
End Sub
Server.ClearError
是必要的,否则默认ASP.NET错误处理启动并显示用户——这取决于
<customErrors>
<自定义错误>
可以关闭。
ClearError
我不能再使用
<自定义错误>
ASP.NET vulnerability
,建议的解决方法是使用
<
.
我知道我需要
customErrors
并在
defaultRedirect
有可能吗
有规律的
应用程序中的错误处理\u错误,但仍允许它被
<自定义错误>
? 这是最佳实践还是我做错了什么?
PS:我们的许多应用程序都托管在客户的服务器上(而不是我们自己的服务器),所以“将所有信息放在应用程序日志中,不向用户显示任何信息”并不是一个真正的选项。
解决方案
:替换
httpApp.Server.ClearError()
具有
If Not HttpContext.Current.IsCustomErrorEnabled Then httpApp.Server.ClearError()