HttpApplication Klass

Definition

Definierar de metoder, egenskaper och händelser som är gemensamma för alla programobjekt i ett ASP.NET program. Den här klassen är basklassen för program som definieras av användaren i filen Global.asax.

public ref class HttpApplication : IDisposable, System::ComponentModel::IComponent, System::Web::IHttpAsyncHandler
public class HttpApplication : IDisposable, System.ComponentModel.IComponent, System.Web.IHttpAsyncHandler
type HttpApplication = class
    interface IHttpAsyncHandler
    interface IHttpHandler
    interface IComponent
    interface IDisposable
type HttpApplication = class
    interface IComponent
    interface IDisposable
    interface IHttpAsyncHandler
    interface IHttpHandler
Public Class HttpApplication
Implements IComponent, IDisposable, IHttpAsyncHandler
Arv
HttpApplication
Implementeringar

Exempel

Följande två exempel visar hur du HttpApplication använder klassen och dess händelser. Det första exemplet visar hur du skapar en anpassad HTTP-modul och ansluter en händelse till den. Det andra exemplet visar hur du ändrar Web.config-filen.

I följande exempel visas hur du skapar en anpassad HTTP-modul och ansluter AcquireRequestState händelsen till HTTP-modulen. HTTP-moduler fångar upp varje begäran till webbprogramresurser, vilket gör att du kan filtrera klientbegäranden. Alla HTTP-moduler som prenumererar på en HttpApplication händelse måste implementera IHttpModule gränssnittet.

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 ");
        }
    }
}
Imports System.Web

Namespace Samples.AspNet.VB
    Public Class CustomHTTPModule
        Implements IHttpModule

        Public Sub New()

            ' Class constructor.

        End Sub


        ' Classes that inherit IHttpModule 
        ' must implement the Init and Dispose methods.
        Public Sub Init(ByVal app As HttpApplication) Implements IHttpModule.Init

            AddHandler app.AcquireRequestState, AddressOf app_AcquireRequestState
            AddHandler app.PostAcquireRequestState, AddressOf app_PostAcquireRequestState

        End Sub


        Public Sub Dispose() Implements IHttpModule.Dispose

            ' Add code to clean up the
            ' instance variables of a module.

        End Sub


        ' Define a custom AcquireRequestState event handler.
        Public Sub app_AcquireRequestState(ByVal o As Object, ByVal ea As EventArgs)

            Dim httpApp As HttpApplication = CType(o, HttpApplication)
            Dim ctx As HttpContext = HttpContext.Current
            ctx.Response.Write(" Executing AcquireRequestState ")

        End Sub

        ' Define a custom PostAcquireRequestState event handler.
        Public Sub app_PostAcquireRequestState(ByVal o As Object, ByVal ea As EventArgs)

            Dim httpApp As HttpApplication = CType(o, HttpApplication)
            Dim ctx As HttpContext = HttpContext.Current
            ctx.Response.Write(" Executing PostAcquireRequestState ")

        End Sub

    End Class

End Namespace

Innan en händelse i en anpassad HTTP-modul kan inträffa måste du ändra konfigurationsinställningarna i den Web.config filen för att meddela ASP.NET om HTTP-modulen. I följande exempel visas lämplig konfigurationsinställning i httpModules avsnittet i filen Web.config. Följande inställning gäller för klassiskt IIS 7.0-läge och tidigare versioner av IIS.

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

Följande inställning gäller för integrerat IIS 7.0-läge.

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

Kommentarer

Instanser av klassen HttpApplication skapas i ASP.NET infrastruktur, inte av användaren direkt. En instans av HttpApplication klassen används för att bearbeta många begäranden under dess livslängd. Den kan dock bara bearbeta en begäran i taget. Medlemsvariabler kan därför användas för att lagra data per begäran.

Ett program genererar händelser som kan hanteras av anpassade moduler som implementerar IHttpModule gränssnittet eller av händelsehanterarkoden som definieras i filen Global.asax. Anpassade moduler som implementerar IHttpModule gränssnittet kan placeras i mappen App_Code eller i en DLL i mappen Bin.

HttpApplication introduceras i .NET Framework version 3.5. Mer information finns i Versioner och beroenden.

Note

När du kör IIS 7.0 i integrerat läge gäller anpassade moduler i mappen App_Code eller mappen Bin för alla begäranden i begärandepipelinen. Händelsehanterarkod i filen Global.asax gäller endast för begäranden som mappas till en ASP.NET-hanterare.

Programhändelserna genereras i följande ordning:

  1. BeginRequest

  2. AuthenticateRequest

  3. PostAuthenticateRequest

  4. AuthorizeRequest

  5. PostAuthorizeRequest

  6. ResolveRequestCache

  7. PostResolveRequestCache

    Efter händelsen PostResolveRequestCache och före PostMapRequestHandler händelsen skapas en händelsehanterare (som är en sida som motsvarar url:en för begäran). När en server kör IIS 7.0 i integrerat läge och minst .NET Framework version 3.0 utlöses händelsen MapRequestHandler. När en server kör IIS 7.0 i klassiskt läge eller en tidigare version av IIS kan den här händelsen inte hanteras.

  8. PostMapRequestHandler

  9. AcquireRequestState

  10. PostAcquireRequestState

  11. PreRequestHandlerExecute

    Händelsehanteraren körs.

  12. PostRequestHandlerExecute

  13. ReleaseRequestState

  14. PostReleaseRequestState

    När händelsen PostReleaseRequestState har aktiverats filtrerar alla befintliga svarsfilter utdata.

  15. UpdateRequestCache

  16. PostUpdateRequestCache

  17. LogRequest.

    Den här händelsen stöds i IIS 7.0-integrerat läge och minst .NET Framework 3.0

  18. PostLogRequest

    Den här händelsen stöds IIS 7.0 Integrerat läge och minst .NET Framework 3.0

  19. EndRequest

Konstruktorer

Name Description
HttpApplication()

Initierar en ny instans av HttpApplication klassen.

Egenskaper

Name Description
Application

Hämtar aktuellt tillstånd för ett program.

Context

Hämtar HTTP-specifik information om den aktuella begäran.

Events

Hämtar listan över händelsehanterardelegater som bearbetar alla programhändelser.

Modules

Hämtar samlingen av moduler för det aktuella programmet.

Request

Hämtar det inbyggda begärandeobjektet för den aktuella begäran.

Response

Hämtar det inbyggda svarsobjektet för den aktuella begäran.

Server

Hämtar det inbyggda serverobjektet för den aktuella begäran.

Session

Hämtar det inbyggda sessionsobjektet som ger åtkomst till sessionsdata.

Site

Hämtar eller anger ett platsgränssnitt för en IComponent implementering.

User

Hämtar det inbyggda användarobjektet för den aktuella begäran.

Metoder

Name Description
AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Lägger till den angivna AcquireRequestState händelsen i samlingen med asynkrona AcquireRequestState händelsehanterare för den aktuella begäran.

AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

Lägger till den angivna AcquireRequestState händelsen i samlingen med asynkrona AcquireRequestState händelsehanterare för den aktuella begäran.

AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

Lägger till den angivna AuthenticateRequest händelsen i samlingen med asynkrona AuthenticateRequest händelsehanterare för den aktuella begäran.

AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

Lägger till den angivna AuthenticateRequest händelsen i samlingen med asynkrona AuthenticateRequest händelsehanterare för den aktuella begäran.

AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

Lägger till den angivna AuthorizeRequest händelsen i samlingen med asynkrona AuthorizeRequest händelsehanterare för den aktuella begäran.

AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

Lägger till den angivna AuthorizeRequest händelsen i samlingen med asynkrona AuthorizeRequest händelsehanterare för den aktuella begäran.

AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler, Object)

Lägger till den angivna BeginRequest händelsen i samlingen med asynkrona BeginRequest händelsehanterare för den aktuella begäran.

AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler)

Lägger till den angivna BeginRequest händelsen i samlingen med asynkrona BeginRequest händelsehanterare för den aktuella begäran.

AddOnEndRequestAsync(BeginEventHandler, EndEventHandler, Object)

Lägger till den angivna EndRequest händelsen i samlingen med asynkrona EndRequest händelsehanterare för den aktuella begäran.

AddOnEndRequestAsync(BeginEventHandler, EndEventHandler)

Lägger till den angivna EndRequest händelsen i samlingen med asynkrona EndRequest händelsehanterare för den aktuella begäran.

AddOnLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

Lägger till den angivna LogRequest händelsen i samlingen med asynkrona LogRequest händelsehanterare för den aktuella begäran.

AddOnLogRequestAsync(BeginEventHandler, EndEventHandler)

Lägger till den angivna LogRequest händelsen i samlingen med asynkrona LogRequest händelsehanterare för den aktuella begäran.

AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

Lägger till den angivna MapRequestHandler händelsen i samlingen med asynkrona MapRequestHandler händelsehanterare för den aktuella begäran.

AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

Lägger till den angivna MapRequestHandler händelsen i samlingen med asynkrona MapRequestHandler händelsehanterare för den aktuella begäran.

AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Lägger till den angivna PostAcquireRequestState händelsen i samlingen med asynkrona PostAcquireRequestState händelsehanterare för den aktuella begäran.

AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

Lägger till den angivna PostAcquireRequestState händelsen i samlingen med asynkrona PostAcquireRequestState händelsehanterare för den aktuella begäran.

AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

Lägger till den angivna PostAuthorizeRequest händelsen i samlingen med asynkrona PostAuthorizeRequest händelsehanterare för den aktuella begäran.

AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

Lägger till den angivna PostAuthenticateRequest händelsen i samlingen med asynkrona PostAuthenticateRequest händelsehanterare för den aktuella begäran.

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

Lägger till den angivna PostAuthorizeRequest i samlingen med asynkrona PostAuthorizeRequest händelsehanterare för den aktuella begäran.

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

Lägger till den angivna PostAuthorizeRequest händelsen i samlingen med asynkrona PostAuthorizeRequest händelsehanterare för den aktuella begäran.

AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

Lägger till den angivna PostLogRequest händelsen i samlingen med asynkrona PostLogRequest händelsehanterare för den aktuella begäran.

AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler)

Lägger till den angivna PostLogRequest händelsen i samlingen med asynkrona PostLogRequest händelsehanterare för den aktuella begäran.

AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

Lägger till den angivna PostMapRequestHandler händelsen i samlingen med asynkrona PostMapRequestHandler händelsehanterare för den aktuella begäran.

AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

Lägger till den angivna PostMapRequestHandler händelsen i samlingen med asynkrona PostMapRequestHandler händelsehanterare för den aktuella begäran.

AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Lägger till den angivna PostReleaseRequestState händelsen i samlingen med asynkrona PostReleaseRequestState händelsehanterare för den aktuella begäran.

AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

Lägger till den angivna PostReleaseRequestState händelsen i samlingen med asynkrona PostReleaseRequestState händelsehanterare för den aktuella begäran.

AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

Lägger till den angivna PostRequestHandlerExecute händelsen i samlingen med asynkrona PostRequestHandlerExecute händelsehanterare för den aktuella begäran.

AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

Lägger till den angivna PostRequestHandlerExecute händelsen i samlingen med asynkrona PostRequestHandlerExecute händelsehanterare för den aktuella begäran.

AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Lägger till den angivna PostResolveRequestCache händelsen i samlingen med asynkrona PostResolveRequestCache händelsehanterare för den aktuella begäran.

AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

Lägger till den angivna PostResolveRequestCache händelsen i samlingen med asynkrona PostResolveRequestCache händelsehanterare för den aktuella begäran.

AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Lägger till den angivna PostUpdateRequestCache händelsen i samlingen med asynkrona PostUpdateRequestCache händelsehanterare för den aktuella begäran.

AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

Lägger till den angivna PostUpdateRequestCache händelsen i samlingen med asynkrona PostUpdateRequestCache händelsehanterare för den aktuella begäran.

AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

Lägger till den angivna PreRequestHandlerExecute händelsen i samlingen med asynkrona PreRequestHandlerExecute händelsehanterare för den aktuella begäran.

AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

Lägger till den angivna PreRequestHandlerExecute händelsen i samlingen med asynkrona PreRequestHandlerExecute händelsehanterare för den aktuella begäran.

AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Lägger till den angivna ReleaseRequestState händelsen i samlingen med asynkrona ReleaseRequestState händelsehanterare för den aktuella begäran.

AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

Lägger till den angivna ReleaseRequestState händelsen i samlingen med asynkrona ReleaseRequestState händelsehanterare för den aktuella begäran.

AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Lägger till den angivna ResolveRequestCache händelsehanteraren i samlingen med asynkrona ResolveRequestCache händelsehanterare för den aktuella begäran.

AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

Lägger till den angivna ResolveRequestCache händelsehanteraren i samlingen med asynkrona ResolveRequestCache händelsehanterare för den aktuella begäran.

AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Lägger till den angivna UpdateRequestCache händelsen i samlingen med asynkrona UpdateRequestCache händelsehanterare för den aktuella begäran.

AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

Lägger till den angivna UpdateRequestCache händelsen i samlingen med asynkrona UpdateRequestCache händelsehanterare för den aktuella begäran.

CompleteRequest()

Orsakar ASP.NET att kringgå alla händelser och filtrering i HTTP-pipelinekedjan för körning och köra händelsen EndRequest direkt.

Dispose()

Bortser från instansen HttpApplication .

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetOutputCacheProviderName(HttpContext)

Hämtar namnet på standardprovidern för utdatacache som har konfigurerats för en webbplats.

GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
GetVaryByCustomString(HttpContext, String)

Tillhandahåller en programomfattande implementering av VaryByCustom egenskapen.

Init()

Kör anpassad initieringskod när alla händelsehanterarmoduler har lagts till.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
OnExecuteRequestStep(Action<HttpContextBase,Action>)

Anger ett återanrop som ska anropas när ett körningssteg för begäran körs.

RegisterModule(Type)

Registrerar en programmodul.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Händelser

Name Description
AcquireRequestState

Inträffar när ASP.NET hämtar det aktuella tillståndet (till exempel sessionstillstånd) som är associerat med den aktuella begäran.

AuthenticateRequest

Inträffar när en säkerhetsmodul har upprättat användarens identitet.

AuthorizeRequest

Inträffar när en säkerhetsmodul har verifierat användarauktorisering.

BeginRequest

Inträffar som den första händelsen i HTTP-pipelinekedjan för körning när ASP.NET svarar på en begäran.

Disposed

Inträffar när programmet tas bort.

EndRequest

Inträffar som den sista händelsen i HTTP-pipelinekedjan för körning när ASP.NET svarar på en begäran.

Error

Inträffar när ett ohanterat undantag utlöses.

LogRequest

Inträffar strax innan ASP.NET utför någon loggning för den aktuella begäran.

MapRequestHandler

Inträffar när hanteraren har valts för att svara på begäran.

PostAcquireRequestState

Inträffar när begärandetillståndet (till exempel sessionstillstånd) som är associerat med den aktuella begäran har hämtats.

PostAuthenticateRequest

Inträffar när en säkerhetsmodul har upprättat användarens identitet.

PostAuthorizeRequest

Inträffar när användaren för den aktuella begäran har auktoriserats.

PostLogRequest

Inträffar när ASP.NET har slutfört bearbetningen av alla händelsehanterare för händelsen LogRequest.

PostMapRequestHandler

Inträffar när ASP.NET har mappat den aktuella begäran till lämplig händelsehanterare.

PostReleaseRequestState

Inträffar när ASP.NET har slutfört körningen av alla händelsehanterare för begäran och begärandetillståndsdata har lagrats.

PostRequestHandlerExecute

Inträffar när ASP.NET händelsehanteraren (till exempel en sida eller en XML-webbtjänst) slutför körningen.

PostResolveRequestCache

Inträffar när ASP.NET kringgår körningen av den aktuella händelsehanteraren och tillåter att en cachelagringsmodul hanterar en begäran från cacheminnet.

PostUpdateRequestCache

Inträffar när ASP.NET har uppdaterat cachelagringsmoduler och lagrat svar som används för att hantera efterföljande begäranden från cachen.

PreRequestHandlerExecute

Inträffar precis innan ASP.NET börjar köra en händelsehanterare (till exempel en sida eller en XML-webbtjänst).

PreSendRequestContent

Inträffar strax innan ASP.NET skickar innehåll till klienten.

PreSendRequestHeaders

Inträffar strax innan ASP.NET skickar HTTP-huvuden till klienten.

ReleaseRequestState

Inträffar när ASP.NET har kört alla händelsehanterare för begäran. Den här händelsen gör att tillståndsmoduler sparar aktuella tillståndsdata.

RequestCompleted

Inträffar när de hanterade objekt som är associerade med begäran har släppts.

ResolveRequestCache

Inträffar när ASP.NET slutför en auktoriseringshändelse så att cachelagringsmodulerna kan hantera begäranden från cachen och kringgå körningen av händelsehanteraren (till exempel en sida eller en XML-webbtjänst).

UpdateRequestCache

Inträffar när ASP.NET slutför körningen av en händelsehanterare för att låta cachelagringsmoduler lagra svar som ska användas för att hantera efterföljande begäranden från cacheminnet.

Explicita gränssnittsimplementeringar

Name Description
IHttpAsyncHandler.BeginProcessRequest(HttpContext, AsyncCallback, Object)

Initierar ett asynkront anrop till HTTP-händelsehanteraren.

IHttpAsyncHandler.EndProcessRequest(IAsyncResult)

Tillhandahåller en asynkron processmetod End när processen är klar.

IHttpHandler.IsReusable

Hämtar ett Boolean värde som anger om en annan begäran kan använda objektet IHttpHandler .

IHttpHandler.ProcessRequest(HttpContext)

Möjliggör bearbetning av HTTP-webbbegäranden av en anpassad HTTP-hanterare som implementerar IHttpHandler gränssnittet.

Gäller för

Se även