Skip to main content
 首页 » 编程设计

c#之在C#Web表单上的每个请求上运行的事件

2024年01月22日27lvdongjie

我需要在服务器上发出的每个请求之前或之上运行的事件。

如果存在该事件,则需要对该事件运行一些代码。

例如:有人键入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