首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Asp.Net Global.asax访问当前请求的Page对象

在Asp.Net中,Global.asax文件是应用程序的全局配置文件,它包含了应用程序的生命周期事件。要在Global.asax文件中访问当前请求的Page对象,可以使用HttpApplicationState对象。

HttpApplicationState对象是一个全局的应用程序状态对象,可以在整个应用程序中访问。在Global.asax文件中,可以使用HttpApplicationState对象来存储和访问当前请求的Page对象。

以下是一个示例代码,展示了如何在Global.asax文件中访问当前请求的Page对象:

代码语言:csharp
复制
void Application_BeginRequest(object sender, EventArgs e)
{
    HttpApplication application = (HttpApplication)sender;
    HttpContext context = application.Context;
    Page page = (Page)context.Handler;

    // 在这里可以访问当前请求的Page对象
}

在上面的代码中,我们首先获取了HttpApplication对象,然后通过它获取了HttpContext对象。最后,我们通过HttpContext对象获取了当前请求的Page对象。

需要注意的是,在Global.asax文件中访问当前请求的Page对象需要在适当的事件处理程序中进行,例如在Application_BeginRequest事件处理程序中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WCF技术剖析之四:基于IISWCF服务寄宿(Hosting)实现揭秘

现在我们为之添加一个global.asax,在该global.asax,我通过如下代码注册了HttpApplication处理请求前三个事件:BeginRequest、AuthenticateRequest...服务寄宿发生在对服务.svc文件第一次访问,具体实现很简单:ServiceMode根据请求目的地址加载相应.svc文件,通过解析定义在指令Factory和Service...但是HttpRuntime对于.aspx Page和.asmx Web Service处理机制并不会应用于对.svc WCF Service请求。...图3 ASP.NET并行模式 在图3体现这种情况下(ASP.NET .aspx Page和.svc WCF Service共存于同一个AppDomain),.aspx可以直接定位WCF Service...不过,WCF服务模型通过自己方式解决了上面的问题,比如: OperationContext:ASP.NET HttpContext是基于当前请求,WCFOperationContext是基于当前操作

1.2K100

【译】ASP.NET应用程序和页面生命周期

用户发送一个请求到IIS服务器时:   (1)ASP.NET会创建一个能够处理请求环境。换句话说,它会创建一个包含请求、响应以及上下文对象应用程序对象来处理这个请求。   ...(2)一旦ASP.NET环境被创建,用户请求就会通过由modules(管道)、handlers(处理程序)和page objects(页面对象)触发一系列事件进行处理。...如果你系统中存在一个global.asax文件,那么这个global.asax文件对象也会被创建。但是,需要注意是你global.asax需要继承自HttpApplication类。...第五步:此时HttpApplication对象将会被分配给一系列ASP.NET核心对象来处理请求页面。...1 Init No No No 注意:你可以通过使用ASP.NET请求对象访问表单数据等,但不是通过服务器控件。动态地创建控件,如果你一定要在运行时创建;任何初始化设置;母版页及其设置。

1.1K30

ASP.NET Process Model之二:ASP.NET Http Runtime Pipeline - Part II

二、ASP.NET Runtime Pipeline(续ASP.NET Http Runtime Pipeline - Part I) 现在我们真正进入ASP.NET管辖范畴,下图基本上囊括整个处理过程涉及对象...通过HttpContext对象我们可以访问属于当前Request一系列常用对象:Server,Session,Cache,Application,Request,Response,Trace,User...原因很简单,ASP.NET天生具有多线程特性,需要通过相应不同Client访问,如果我们只用一个HttpApplication来处理这些并发请求,会对Responsibility造成严重影响,...比如一个.apsxWeb Page通过一个System.Web.UI.Page来处理。...在最后还说说另一个典型HttpHandler:System.Web.HttpForbiddenHandler,从名称我们不难看出,它用于那些禁止访问Resource,现在应该知道了为了Global.asax

74890

理解并自定义HttpModule

也就是说HttpModule是订阅Asp.net应用程序级事件入口,依附于HttpApplication对象生命周期各个事件。...判断用户是否被授权访问某一资源 AnonymousIdentification System.Web.Security.AnonymousIdentificationModule 管理Asp.Net应用程序中匿名访问...通过HttpApplication对象Modules属性获取HttpModuleCollection,然后通过name获取对应HttpModule对象;在Global.asax中通过方法名ModuleName_EventName...,HttpApplication代表了当前应用程序,我们需要在这个方法内订阅 HttpApplication对象暴露给客户端事件。...整个过程很好理解: 当站点第一个资源被访问时候,Asp.Net会创建HttpApplication类实例,它代表着站点应用程序,同时会创建所有在Web.Config中注册过Module实例。

73060

ASP.NET保持用户状态九种选择

通过回答这些问题,你能决定哪个对象为保持ASP.NET应用程序请求间数据提供了最佳解决方案。图1列出了不同状态管理对象并描述了什么时候使用它们。...ViewState是ASP.NET对这种技术实现,我将在本文后部分讨论它。访问通过POST发送窗体值是使用HttpRequest对象窗体集合完成。...Context容器可以保持大量数据,但是典型情况下是保存小数据片,因为它经常通过global.asax某个处理方法为每个请求实现。...Context容器(从Page对象访问或使用System.Web.HttpContext.Current)被提供用于保持需要在不同HttpModules和HttpHandlers之间传递值。...注意这只在当前请求中可用,如果你希望在下一个请求中也能使用,请考虑使用ViewState。

1.8K20

ASP.NET 4 AppFabric 输出缓存提供程序

缓存是用来保存你数据地方,从而使你应用程序访问更快速。缓存可以根据你需要分配到许多台机器上,而开发人员无需关心数据究竟在哪台机器上。...为了获得超快性能,你甚至可以牺牲数据一致性,将缓存复制到调用客户端(本地缓存)。所保存数据可以是任何可被序列化.NET对象。 使用缓存目的是让你应用程序性能和扩展性更好。...,只能在UserControl中指定Provider名字,在Page声明中是不允许,在Page中默认情况会使用web.config中配置defaultProvider,但是我们可以通过3)中介绍方法给不同页面使用不同...3)你可以通过覆盖应用Global.asax文件中 GetOutputCacheProviderName() 方法,在每个请求基础上,动态指定使用哪个输出缓存提供器。...在下面,我表明,对我应用中 “Home.aspx”网页我想要使用内置,用内存ASP.NET输出缓存提供器,然后对所有其他请求,我想要使用注册在web.config文件中提供器:在Global.asax

2K90

Global.asax中获取Session注意事项

于是就用Global.asax来实现,本来很方便,但为了获取当前登录用户,需要在Global.asax中获取Session,花了点时间才搞定,记录下来分享一下。...Application_AcquireRequestState:当ASP.NET获取当前请求所关联的当前状态(如Session)时执行(真是拗口啊,msdn上就这样写,我自己想不出什么好句子了)。...Application_PreRequestHandlerExecute:当ASP.Net即将把请求发送到处理程序对象(页面或者是WebService)之前执行。这个时候,Session就可以用了。...Application_ReleaseRequestState:在ASP.NET执行完所有请求处理程序后执行。ReleaseRequestState事件将使当前状态数据被保存。...Application_UpdateRequestCache:在ASP.NET执行完处理程序后,为了后续请求而更新响应缓存时执行。

1.3K20

Application Session Cookie ViewState Cache Hidden 区别

ASP.NET中,有多种保存信息对象,如:Application,Session,Cookie,ViewState、Cache等,它们有什么区别?应用环境是什么?...但是在Asp.net开发环境中我们把类似的配置数据放在Web.config中; 3、如果要使用Application要注意是所有的写操作都要在Application_OnStart事件中完成(global.Asax...,有效期等于页面的生命周期; 2、可以保存大量数据但是要慎用,因为会影响程序性能; 3、所有的Web服务器控件都是用ViewState在页面PostBack期间保存状态; 4、不需要则关闭 @page...; 2、Cache使用可以大大提高整个应用程序效率; 3、它允许将频繁访问服务器资源存储在内存中,当用户发出相同请求后,服务器不是再次处理而是将Cache中保存数据直接返回给用户; 4、可以看出...文件 Application_start: 第一个访问网站用户会触发该方法.

80930

ASP.NET路由系统:URL与物理文件分离

ASP.NET通过URL路由系统实现了请求地址与物理文件分离。...二、 实例演示:通过URL路由实现请求地址与.aspx页面的映射 接下来我们将创建一个简单ASP.NET Web Forms应用,并采用一个独立于.aspx文件路径URL来访问对应Web页面,而两者之间映射通过...要通过一个独立于物理路径URL来访问该.aspx页面,我们就需要采用URL路由机制来实现两者之间映射。为此我们在添加Global.asax文件中编写了如下几行代码。...对于指定了默认值路由对象,在当前请求地址后续部分缺失情况下,它会采用提供默认值对该地址进行填充之后再进行模式匹配。...Page具有一个类型为System.Web.Routing.RouteDataRouteData表示通过注册当前请求匹配路由对象请求地址进行解析生成路由数据。

1.2K80

ASP.NET MVC路由扩展:路由映射

ASP.NET路由系统旨在通过注册URL模板与物理文件之间映射进而实现请求地址与文件路径之间分离,但是对于ASP.NET MVC应用来说,请求目标不再是一个具体物理文件,而是定义在某个Controller...对于ASP.NET MVC来说,最终需要通过在请求地址中指定Controller名称来创建具体Controller实例。...对于针对定义在某个Controller中某个Action请求,如果注册路由表与之匹配,具体匹配某个路由对象GetRouteData被调用并返回一个具体RouteData对象。...我们依然沿用之前关于获取天气信息场景,看看通过这种方式进行注册Route对象针对匹配HTTP请求返回怎样RouteData对象。...当我们通过Visual StudioASP.NET MVC项目模版创建一个Web应用时候,在Global.asax文件中会生成如下代码通过调用AreaRegistration静态方法RegisterAllAreas

1.3K100

.Net如何统计在线人数

,该方法特点就是充分利用了ASP.NET特点,结合global.asax文件,用Application和Session巧妙实现在线用户统计,由于程序中只用到一个Application,所以,程序占用系统资源几乎可以忽略不及...,当然,这也是网站管理者最关心问题之一 一、用户显示页面的使用  首先,我们来看看怎样现实当前网站访问用户数量,程序代码如下:  <%@ Page Language= "c# " debug...来显示当前用户数量  二、global.asax文件实现  global.asax文件作用我们自不必说,现在,我们直接来看统计当前在线用户数量如何实现:  <script language...= "总访问人数" + Application["total"].ToString();             this.Label2.Text = "当前在线数" + Application["online...注意事项 8、           我在VS2005中调试进行时,显示:总访问人数为1001;当前在线数1当;           我重新打开另外一个IE,并把地址Copy过去,这时显示:总访问人数为

1.3K30

ASP.NET中在线用户统计

现在,我们就介绍一个简单明了方法来统计在线用户多少,该方法特点就是充分利用了ASP.NET特点,结合global.asax文件,用Application和Session巧妙实现在线用户统计...一、用户显示页面的使用 首先,我们来看看怎样现实当前网站访问用户数量,程序代码如下: <%@ Page Language="c#" debug="true" %> <html> <head> <...= "本站当前有: <b>" + Application["user_sessions"].ToString() + "" + "</b> 位访问者 !"...二、global.asax文件实现 global.asax文件作用我们自不必说,现在,我们直接来看统计当前在线用户数量如何实现: <script language="c#" runat="Server...这样,我们程序就可以在不同访问者环境中顺利运行。 四、总结 以上统计程序特别简单,但是,细节东西我们不一定想到,这也是我们在编程中需要多一点考虑

1.8K30

ASP.NET路由系统实现原理:HttpHandler动态映射

我们知道一个请求最终通过一个具体HttpHandler进行处理,而我们熟悉用于表示一个Web页面的Page对象就是一个HttpHandler,被用于处理基于某个.aspx文件请求。...如下图所示,ASP.NET路由系统通过一个注册到当前应用自定义HttpModule对所有的请求进行拦截,并通过对请求分析为之动态匹配一个用于处理它HttpHandler。...由于调用MapPageRoute方法目的在于实现请求地址与某个.aspx页面文件之间映射,所以我们最终还是要创建Page对象还处理相应请求,所以PageRouteHandlerGetHttpHandler...方法最终返回就是针对映射页面文件路径Page对象。...如下面的代码片断所示,MvcRouteHandler用于获取处理当前请求HttpHandler是一个MvcHandler对象

1.6K60

通过一个模拟程序让你明白ASP.NET MVC是如何运行

ASP.NET MVC路由系统通过对HTTP请求解析得到表示Controller、Action和其他相关数据,并以此为依据激活Controller对象,调用相应Action方法,并将方法返回ActionResult...我们按照ASP.NET MVC原理,通过解析请求URL得到Controller和Action名称。...中注册Route 通过上面定义RouteTable类型,我们在Global.asax中按照如下方式在应用启动时候QueryStringRoute对象添加到RouteTable静态属性Routes...IController,所有Action方法都通过Execute方法执行,该方法参数表示当前请求上下文RequestContext对象。...方法定义很简单:通过包含在RequestContextRouteData得到当前Action,并将它作为方法名得到相应MethodInfo对象,滨个通过反射调用它得到一个ActionResult对象

1.1K60
领券