我需要在服务器上发出的每个请求之前或之上运行的事件。
如果存在该事件,则需要对该事件运行一些代码。
例如:有人键入http://www.website.com/some-link
我需要先检查此链接,然后再由应用程序对其进行处理。
我正在使用C#Web表单。
到目前为止,我正在尝试在Global.asax.cs中查找事件,例如
protected virtual void Application_BeginRequest(object sender, EventArgs e)
{
// need to track requested url
// code that needs to be run with requested url.
}
有什么合适的解决方案吗?
特纳克斯
最佳答案
正确的解决方案是使用事件Application_BeginRequest,除非您要使事情复杂化并使用不推荐使用的httpmodules。
protected virtual void Application_BeginRequest(object sender, EventArgs e)
{
var url = Request.Url.AbsoluteUri;
var path = Request.Url.AbsolutePath;
var host = Request.Url.Host;
// your magic goes here
}
就像一些信息一样,所有事件的顺序是:
Application_BeginRequest
Application_AuthenticateRequest
Application_AuthorizeRequest
Application_ResolveRequestCache
Application_AcquireRequestState
Application_PreRequestHandlerExecute
Application_PreSendRequestHeaders
Application_PreSendRequestContent
asp.net页面代码被执行
Application_PostRequestHandlerExecute
Application_ReleaseRequestState
Application_UpdateRequestCache
Application_EndRequest
关于c# - 在C#Web表单上的每个请求上运行的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31310120/