Export (0) Print
Expand All

HttpApplication Class

Defines the methods, properties, and events that are common to all application objects in an ASP.NET application. This class is the base class for applications that are defined by the user in the Global.asax file.

System.Object
  System.Web.HttpApplication

Namespace:  System.Web
Assembly:  System.Web (in System.Web.dll)

public class HttpApplication : IHttpAsyncHandler, 
	IHttpHandler, IComponent, IDisposable

The HttpApplication type exposes the following members.

  NameDescription
Public methodHttpApplicationInitializes a new instance of the HttpApplication class.
Top

  NameDescription
Public propertyApplicationGets the current state of an application.
Public propertyContextGets HTTP-specific information about the current request.
Protected propertyEventsGets the list of event handler delegates that process all application events.
Public propertyModulesGets the collection of modules for the current application.
Public propertyRequestGets the intrinsic request object for the current request.
Public propertyResponseGets the intrinsic response object for the current request.
Public propertyServerGets the intrinsic server object for the current request.
Public propertySessionGets the intrinsic session object that provides access to session data.
Public propertySiteGets or sets a site interface for an IComponent implementation.
Public propertyUserGets the intrinsic user object for the current request.
Top

  NameDescription
Public methodAddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)Adds the specified AcquireRequestState event to the collection of asynchronous AcquireRequestState event handlers for the current request.
Public methodAddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)Adds the specified AcquireRequestState event to the collection of asynchronous AcquireRequestState event handlers for the current request.
Public methodAddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)Adds the specified AuthenticateRequest event to the collection of asynchronous AuthenticateRequest event handlers for the current request.
Public methodAddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)Adds the specified AuthenticateRequest event to the collection of asynchronous AuthenticateRequest event handlers for the current request.
Public methodAddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)Adds the specified AuthorizeRequest event to the collection of asynchronous AuthorizeRequest event handlers for the current request.
Public methodAddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)Adds the specified AuthorizeRequest event to the collection of asynchronous AuthorizeRequest event handlers for the current request.
Public methodAddOnBeginRequestAsync(BeginEventHandler, EndEventHandler)Adds the specified BeginRequest event to the collection of asynchronous BeginRequest event handlers for the current request.
Public methodAddOnBeginRequestAsync(BeginEventHandler, EndEventHandler, Object)Adds the specified BeginRequest event to the collection of asynchronous BeginRequest event handlers for the current request.
Public methodAddOnEndRequestAsync(BeginEventHandler, EndEventHandler)Adds the specified EndRequest event to the collection of asynchronous EndRequest event handlers for the current request.
Public methodAddOnEndRequestAsync(BeginEventHandler, EndEventHandler, Object)Adds the specified EndRequest event to the collection of asynchronous EndRequest event handlers for the current request.
Public methodAddOnLogRequestAsync(BeginEventHandler, EndEventHandler)Adds the specified LogRequest event to the collection of asynchronous LogRequest event handlers for the current request.
Public methodAddOnLogRequestAsync(BeginEventHandler, EndEventHandler, Object)Adds the specified LogRequest event to the collection of asynchronous LogRequest event handlers for the current request.
Public methodAddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)Adds the specified MapRequestHandler event to the collection of asynchronous MapRequestHandler event handlers for the current request.
Public methodAddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)Adds the specified MapRequestHandler event to the collection of asynchronous MapRequestHandler event handlers for the current request.
Public methodAddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)Adds the specified PostAcquireRequestState event to the collection of asynchronous PostAcquireRequestState event handlers for the current request.
Public methodAddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)Adds the specified PostAcquireRequestState event to the collection of asynchronous PostAcquireRequestState event handlers for the current request.
Public methodAddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)Adds the specified PostAuthenticateRequest event to the collection of asynchronous PostAuthenticateRequest event handlers for the current request.
Public methodAddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)Adds the specified PostAuthorizeRequest event to the collection of asynchronous PostAuthorizeRequest event handlers for the current request.
Public methodAddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)Adds the specified PostAuthorizeRequest event to the collection of asynchronous PostAuthorizeRequest event handlers for the current request.
Public methodAddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)Adds the specified PostAuthorizeRequest to the collection of asynchronous PostAuthorizeRequest event handlers for the current request.
Public methodAddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler)Adds the specified PostLogRequest event to the collection of asynchronous PostLogRequest event handlers for the current request.
Public methodAddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler, Object)Adds the specified PostLogRequest event to the collection of asynchronous PostLogRequest event handlers for the current request.
Public methodAddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)Adds the specified PostMapRequestHandler event to the collection of asynchronous PostMapRequestHandler event handlers for the current request.
Public methodAddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)Adds the specified PostMapRequestHandler event to the collection of asynchronous PostMapRequestHandler event handlers for the current request.
Public methodAddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)Adds the specified PostReleaseRequestState event to the collection of asynchronous PostReleaseRequestState event handlers for the current request.
Public methodAddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)Adds the specified PostReleaseRequestState event to the collection of asynchronous PostReleaseRequestState event handlers for the current request.
Public methodAddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)Adds the specified PostRequestHandlerExecute event to the collection of asynchronous PostRequestHandlerExecute event handlers for the current request.
Public methodAddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)Adds the specified PostRequestHandlerExecute event to the collection of asynchronous PostRequestHandlerExecute event handlers for the current request.
Public methodAddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)Adds the specified PostResolveRequestCache event to the collection of asynchronous PostResolveRequestCache event handlers for the current request.
Public methodAddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)Adds the specified PostResolveRequestCache event to the collection of asynchronous PostResolveRequestCache event handlers for the current request.
Public methodAddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)Adds the specified PostUpdateRequestCache event to the collection of asynchronous PostUpdateRequestCache event handlers for the current request.
Public methodAddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)Adds the specified PostUpdateRequestCache event to the collection of asynchronous PostUpdateRequestCache event handlers for the current request.
Public methodAddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)Adds the specified PreRequestHandlerExecute event to the collection of asynchronous PreRequestHandlerExecute event handlers for the current request.
Public methodAddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)Adds the specified PreRequestHandlerExecute event to the collection of asynchronous PreRequestHandlerExecute event handlers for the current request.
Public methodAddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)Adds the specified ReleaseRequestState event to the collection of asynchronous ReleaseRequestState event handlers for the current request.
Public methodAddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)Adds the specified ReleaseRequestState event to the collection of asynchronous ReleaseRequestState event handlers for the current request.
Public methodAddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)Adds the specified ResolveRequestCache event handler to the collection of asynchronous ResolveRequestCache event handlers for the current request.
Public methodAddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)Adds the specified ResolveRequestCache event handler to the collection of asynchronous ResolveRequestCache event handlers for the current request.
Public methodAddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)Adds the specified UpdateRequestCache event to the collection of asynchronous UpdateRequestCache event handlers for the current request.
Public methodAddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)Adds the specified UpdateRequestCache event to the collection of asynchronous UpdateRequestCache event handlers for the current request.
Public methodCompleteRequestCauses ASP.NET to bypass all events and filtering in the HTTP pipeline chain of execution and directly execute the EndRequest event.
Public methodDisposeDisposes the HttpApplication instance.
Public methodEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodGetOutputCacheProviderNameGets the name of the default output-cache provider that is configured for a Web site.
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodGetVaryByCustomStringProvides an application-wide implementation of the VaryByCustom property.
Public methodInitExecutes custom initialization code after all event handler modules have been added.
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Top

  NameDescription
Public eventAcquireRequestStateOccurs when ASP.NET acquires the current state (for example, session state) that is associated with the current request.
Public eventAuthenticateRequestOccurs when a security module has established the identity of the user.
Public eventAuthorizeRequestOccurs when a security module has verified user authorization.
Public eventBeginRequestOccurs as the first event in the HTTP pipeline chain of execution when ASP.NET responds to a request.
Public eventDisposedOccurs when the application is disposed.
Public eventEndRequestOccurs as the last event in the HTTP pipeline chain of execution when ASP.NET responds to a request.
Public eventErrorOccurs when an unhandled exception is thrown.
Public eventLogRequestOccurs just before ASP.NET performs any logging for the current request.
Public eventMapRequestHandlerInfrastructure. Occurs when the handler is selected to respond to the request.
Public eventPostAcquireRequestStateOccurs when the request state (for example, session state) that is associated with the current request has been obtained.
Public eventPostAuthenticateRequestOccurs when a security module has established the identity of the user.
Public eventPostAuthorizeRequestOccurs when the user for the current request has been authorized.
Public eventPostLogRequestOccurs when ASP.NET has completed processing all the event handlers for the LogRequest event.
Public eventPostMapRequestHandlerOccurs when ASP.NET has mapped the current request to the appropriate event handler.
Public eventPostReleaseRequestStateOccurs when ASP.NET has completed executing all request event handlers and the request state data has been stored.
Public eventPostRequestHandlerExecuteOccurs when the ASP.NET event handler (for example, a page or an XML Web service) finishes execution.
Public eventPostResolveRequestCacheOccurs when ASP.NET bypasses execution of the current event handler and allows a caching module to serve a request from the cache.
Public eventPostUpdateRequestCacheOccurs when ASP.NET finishes updating caching modules and storing responses that are used to serve subsequent requests from the cache.
Public eventPreRequestHandlerExecuteOccurs just before ASP.NET starts executing an event handler (for example, a page or an XML Web service).
Public eventPreSendRequestContentOccurs just before ASP.NET sends content to the client.
Public eventPreSendRequestHeadersOccurs just before ASP.NET sends HTTP headers to the client.
Public eventReleaseRequestStateOccurs after ASP.NET finishes executing all request event handlers. This event causes state modules to save the current state data.
Public eventResolveRequestCacheOccurs when ASP.NET finishes an authorization event to let the caching modules serve requests from the cache, bypassing execution of the event handler (for example, a page or an XML Web service).
Public eventUpdateRequestCacheOccurs when ASP.NET finishes executing an event handler in order to let caching modules store responses that will be used to serve subsequent requests from the cache.
Top

  NameDescription
Explicit interface implemetationPrivate methodIHttpAsyncHandler.BeginProcessRequestInitiates an asynchronous call to the HTTP event handler.
Explicit interface implemetationPrivate methodIHttpAsyncHandler.EndProcessRequestProvides an asynchronous process End method when the process finishes.
Explicit interface implemetationPrivate propertyIHttpHandler.IsReusableGets a Boolean value indicating whether another request can use the IHttpHandler object.
Explicit interface implemetationPrivate methodIHttpHandler.ProcessRequestEnables processing of HTTP Web requests by a custom HTTP handler that implements the IHttpHandler interface.
Top

Instances of the HttpApplication class are created in the ASP.NET infrastructure, not by the user directly. One instance of the HttpApplication class is used to process many requests in its lifetime. However, it can process only one request at a time. Thus, member variables can be used to store per-request data.

An application raises events that can be handled by custom modules that implement the IHttpModule interface or by event handler code that is defined in the Global.asax file. Custom modules that implement the IHttpModule interface can be put in the App_Code folder or in a DLL in the Bin folder.

HttpApplication is introduced in the .NET Framework version 3.5. For more information, see .NET Framework Versions and Dependencies.

NoteNote

When running IIS 7.0 in Integrated mode, custom modules in the App_Code folder or Bin folder apply to all requests in the request pipeline. Event handler code in the Global.asax file only applies to requests that are mapped to an ASP.NET handler.

The application events are raised in the following order:

  1. BeginRequest

  2. AuthenticateRequest

  3. PostAuthenticateRequest

  4. AuthorizeRequest

  5. PostAuthorizeRequest

  6. ResolveRequestCache

  7. PostResolveRequestCache

    After the PostResolveRequestCache event and before the PostMapRequestHandler event, an event handler (which is a page that corresponds to the request URL) is created. When a server is running IIS 7.0 in Integrated mode and at least the .NET Framework version 3.0, the MapRequestHandler event is raised. When a server is running IIS 7.0 in Classic mode or an earlier version of IIS, this event cannot be handled.

  8. PostMapRequestHandler

  9. AcquireRequestState

  10. PostAcquireRequestState

  11. PreRequestHandlerExecute

    The event handler is executed.

  12. PostRequestHandlerExecute

  13. ReleaseRequestState

  14. PostReleaseRequestState

    After the PostReleaseRequestState event is raised, any existing response filters will filter the output.

  15. UpdateRequestCache

  16. PostUpdateRequestCache

  17. LogRequest.

    This event is supported in IIS 7.0 Integrated mode and at least the .NET Framework 3.0

  18. PostLogRequest

    This event is supported IIS 7.0 Integrated mode and at least the .NET Framework 3.0

  19. EndRequest

The following two examples demonstrate how to use the HttpApplication class and its events. The first example demonstrates how to create a custom HTTP module and connect an event to it. The second example demonstrates how to modify the Web.config file.

The following example demonstrates how to create a custom HTTP module and connect the AcquireRequestState event to the HTTP module. HTTP modules intercept each request to Web application resources, thereby allowing you to filter client requests. Any HTTP module that subscribes to an HttpApplication event must implement the IHttpModule interface.


using System;
using System.Web;

namespace Samples.AspNet.CS
{
    public class CustomHTTPModule : IHttpModule
    {
        public CustomHTTPModule()
        {
            // Class constructor.
        }

        // Classes that inherit IHttpModule 
        // must implement the Init and Dispose methods.
        public void Init(HttpApplication app)
        {

            app.AcquireRequestState += new EventHandler(app_AcquireRequestState);
			app.PostAcquireRequestState += new EventHandler(app_PostAcquireRequestState);
		}

        public void Dispose()
        {
            // Add code to clean up the
            // instance variables of a module.
        }

        // Define a custom AcquireRequestState event handler.
        public void app_AcquireRequestState(object o, EventArgs ea)
        {
            HttpApplication httpApp = (HttpApplication)o;
            HttpContext ctx = HttpContext.Current;
            ctx.Response.Write(" Executing AcquireRequestState ");
        }

        // Define a custom PostAcquireRequestState event handler.
		public void app_PostAcquireRequestState(object o, EventArgs ea)
		{
			HttpApplication httpApp = (HttpApplication)o;
			HttpContext ctx = HttpContext.Current;
			ctx.Response.Write(" Executing PostAcquireRequestState ");
		}

	}
}


Before an event in a custom HTTP module can occur, you must modify the configuration settings in the Web.config file to notify ASP.NET about the HTTP module. The following example shows the appropriate configuration setting in the httpModules section of the Web.config file. The following setting applies to IIS 7.0 Classic mode and to earlier versions of IIS.

<configuration>
  <system.web>
    <httpModules>
      <add type="Samples.AspNet.CS.CustomHTTPModule"
        name="CustomHttpModule" />
      </httpModules>
  </system.web>
</configuration>

The following setting applies to IIS 7.0 Integrated mode.

<configuration>
  <system.webServer>
    <modules>
      <add type="Samples.AspNet.CS.CustomHTTPModule"
        name="CustomHttpModule" />
      </modules>
  </system.webServer>
</configuration>

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Community Additions

ADD
Show:
© 2014 Microsoft