加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_阳江站长网 (https://www.0662zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

Asp.net项目中Global.asax文件的作用

发布时间:2023-02-14 12:57:28 所属栏目:Asp教程 来源:
导读:  global.asax:是对asp文件中global.asa的代替ASP 变量,它可以使我们执行asp.net应用程序一层事件的代码,如:application_start等,使你可以在这些事件中作一些自定义的处理;也可以定义应用程序一层的变量,如:
  global.asax:是对asp文件中global.asa的代替ASP 变量,它可以使我们执行asp.net应用程序一层事件的代码,如:application_start等,使你可以在这些事件中作一些自定义的处理;也可以定义应用程序一层的变量,如:Session等,这在整个asp.net应用程序中起作用。
 
  Global.asax文件继承自HttpApplication类,它维护一个HttpApplication对象池,并在需要时将对象池中的对象分配给应用程序Global.asax文件包含以下事件:
 
  ·Application_Init:在应用程序被实例化或第一次被调用时,该事件被触发对于所有的HttpApplication对象实例,它都会被调用
 
  ·Application_Disposed:在应用程序被销毁之前触发这是清除以前所用资源的理想位置
 
  ·Application_Error:当应用程序中遇到一个未处理的异常时,该事件被触发
 
  ·Application_Start:在HttpApplication类的第一个实例被创建时,该事件被触发它允许你创建可以由所有HttpApplication实例访问的对象
 
  ·Application_End:在HttpApplication类的最后一个实例被销毁时,该事件被触发在一个应用程序的生命周期内它只被触发一次
 
  ·Application_BeginRequest:在接收到一个应用程序请求时触发对于一个请求来说,它是第一个被触发的事件,请求一般是用户输入的一个页面请求(URL)
 
  ·Application_EndRequest:针对应用程序请求的最后一个事件
 
  ·Application_PreRequestHandlerExecute:在ASP.NET页面框架开始执行诸如页面或Web服务之类的事件处理程序之前,该事件被触发
 
  ·Application_PostRequestHandlerExecute:在ASP.NET页面框架结束执行一个事件处理程序时,该事件被触发
 
  ·Applcation_PreSendRequestHeaders:在ASP.NET页面框架发送HTTP头给请求客户(浏览器)时,该事件被触发
 
  ·Application_PreSendContent:在ASP.NET页面框架发送内容给请求客户(浏览器)时,该事件被触发
 
  ·Application_AcquireRequestState:在ASP.NET页面框架得到与当前请求相关的当前状态(Session状态)时,该事件被触发
 
  ·Application_ReleaseRequestState:在ASP.NET页面框架执行完所有的事件处理程序时,该事件被触发这将导致所有的状态模块保存它们当前的状态数据
 
  ·Application_ResolveRequestCache:在ASP.NET页面框架完成一个授权请求时,该事件被触发它允许缓存模块从缓存中为请求提供服务,从而绕过事件处理程序的执行
 
  ·Application_UpdateRequestCache:在ASP.NET页面框架完成事件处理程序的执行时,该事件被触发,从而使缓存模块存储响应数据,以供响应后续的请求时使用
 
  ·Application_AuthenticateRequest:在安全模块建立起当前用户的有效的身份时,该事件被触发在这个时候,用户的凭据将会被验证
 
  ·Application_AuthorizeRequest:当安全模块确认一个用户可以访问资源之后,该事件被触发
 
  ·Session_Start:在一个新用户访问应用程序Web站点时,该事件被触发
 
  ·Session_End:在一个用户的会话超时结束或他们离开应用程序Web站点时,该事件被触发
 
  在不同环境下这些事件可能会非常有用,可有选择的使用针对性的选用
 
  比如在我的工程中,我将一些在整个应用程序中起作用的变量放在global.asax.cs中的:application_start()中,如:Application[ "ourstr "]= "aaa ";,那么它在整个应用程序中起作用,是所有用户共享的变量,每一个用户对它的操作所有用户可见。将一些对每一个会话起作用的变量放在Session_Start()中,如:Sessin[ "mystr "]= "bbb ";这样对每个用户来说(其实是每个会话,也就是打开一个IE界面),它都拥有一个独立的变量,对它的操作只对每个用户起作用,对其它会话是不可见的。当然,在上述这些事件中,还可以做一些其它事情。
 
  web.config能做什么呢,比如:可以在里面设置编码方式是 "utf-8 "还是 "gb2312 ",可以设置安全选项,是用form验证还是集成widnow验证,是否使用cookie(cookieless= "true|false "),也可以再里头定义一些全局常量,如数据库连接字符串等。这些配置对整个应用程序,也就是所有用户受影响,如:设了cookieless= "true ",而用户的cookie又禁止,那么,在global.asax中设的Session变量就无法在同一个会话的各个页面共享了。
 

(编辑:应用网_阳江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章