Sdílet prostřednictvím


HttpApplication Třída

Definice

Definuje metody, vlastnosti a události, které jsou společné pro všechny objekty aplikace v ASP.NET aplikace. Tato třída je základní třídou pro aplikace, které jsou definovány uživatelem v souboru 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
Dědičnost
HttpApplication
Implementuje

Příklady

Následující dva příklady ukazují, jak používat HttpApplication třídu a její události. První příklad ukazuje, jak vytvořit vlastní modul HTTP a připojit k němu událost. Druhý příklad ukazuje, jak upravit soubor Web.config.

Následující příklad ukazuje, jak vytvořit vlastní modul HTTP a připojit AcquireRequestState událost k modulu HTTP. Moduly HTTP zachycují jednotlivé požadavky na prostředky webové aplikace a umožňují tak filtrovat požadavky klientů. Každý modul HTTP, který se přihlašuje k odběru HttpApplication události, musí implementovat IHttpModule rozhraní .

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

Než může dojít k události ve vlastním modulu HTTP, musíte upravit nastavení konfigurace v souboru Web.config, abyste ASP.NET o modulu HTTP informovali. Následující příklad ukazuje odpovídající nastavení konfigurace v httpModules části souboru Web.config. Následující nastavení platí pro klasický režim služby IIS 7.0 a pro starší verze služby 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>  

Následující nastavení platí pro integrovaný režim služby IIS 7.0.

<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>  

Poznámky

Instance HttpApplication třídy se vytvářejí v infrastruktuře ASP.NET, nikoli přímo uživatelem. Jedna instance HttpApplication třídy se používá ke zpracování mnoha požadavků během svého životního cyklu. Může ale zpracovat vždy jenom jeden požadavek. Členské proměnné se proto dají použít k ukládání dat pro jednotlivé požadavky.

Aplikace vyvolává události, které mohou být zpracovány vlastní moduly, které implementují IHttpModule rozhraní nebo kód obslužné rutiny událostí, který je definován v souboru Global.asax. Vlastní moduly, které implementují IHttpModule rozhraní, lze umístit do složky App_Code nebo do knihovny DLL ve složce Bin.

HttpApplication je zaveden v rozhraní .NET Framework verze 3.5. Další informace najdete v tématu Verze a závislosti.

Poznámka

Při spuštění služby IIS 7.0 v integrovaném režimu se vlastní moduly ve složce App_Code nebo složce Bin vztahují na všechny požadavky v kanálu požadavků. Kód obslužné rutiny události v souboru Global.asax se vztahuje pouze na požadavky mapované na obslužnou rutinu ASP.NET.

Události aplikace jsou vyvolány v následujícím pořadí:

  1. BeginRequest

  2. AuthenticateRequest

  3. PostAuthenticateRequest

  4. AuthorizeRequest

  5. PostAuthorizeRequest

  6. ResolveRequestCache

  7. PostResolveRequestCache

    PostResolveRequestCache Po události a před událostí PostMapRequestHandler se vytvoří obslužná rutina události (což je stránka, která odpovídá adrese URL požadavku). Pokud na serveru běží služba IIS 7.0 v integrovaném režimu a minimálně rozhraní .NET Framework verze 3.0, MapRequestHandler je vyvolána událost. Pokud server používá službu IIS 7.0 v klasickém režimu nebo starší verzi služby IIS, nelze tuto událost zpracovat.

  8. PostMapRequestHandler

  9. AcquireRequestState

  10. PostAcquireRequestState

  11. PreRequestHandlerExecute

    Obslužná rutina události se spustí.

  12. PostRequestHandlerExecute

  13. ReleaseRequestState

  14. PostReleaseRequestState

    Po vyvolání PostReleaseRequestState události budou výstup filtrovat všechny existující filtry odpovědí.

  15. UpdateRequestCache

  16. PostUpdateRequestCache

  17. LogRequest.

    Tato událost je podporována v integrovaném režimu služby IIS 7.0 a minimálně v rozhraní .NET Framework 3.0.

  18. PostLogRequest

    Tato událost je podporována v integrovaném režimu služby IIS 7.0 a minimálně rozhraní .NET Framework 3.0.

  19. EndRequest

Konstruktory

HttpApplication()

Inicializuje novou instanci HttpApplication třídy .

Vlastnosti

Application

Získá aktuální stav aplikace.

Context

Získá informace specifické pro HTTP aktuální požadavek.

Events

Získá seznam delegátů obslužných rutin událostí, které zpracovávají všechny události aplikace.

Modules

Získá kolekci modulů pro aktuální aplikaci.

Request

Získá vnitřní požadavek objekt pro aktuální požadavek.

Response

Získá vnitřní response objekt pro aktuální požadavek.

Server

Získá vnitřní server objekt pro aktuální požadavek.

Session

Získá vnitřní objekt relace, který poskytuje přístup k datům relace.

Site

Získá nebo nastaví rozhraní webu pro implementaci IComponent .

User

Získá vnitřní objekt uživatele pro aktuální požadavek.

Metody

AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

Přidá zadanou AcquireRequestState událost do kolekce asynchronních AcquireRequestState obslužných rutin událostí pro aktuální požadavek.

AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadanou AcquireRequestState událost do kolekce asynchronních AcquireRequestState obslužných rutin událostí pro aktuální požadavek.

AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

Přidá zadanou AuthenticateRequest událost do kolekce asynchronních AuthenticateRequest obslužných rutin událostí pro aktuální požadavek.

AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadanou AuthenticateRequest událost do kolekce asynchronních AuthenticateRequest obslužných rutin událostí pro aktuální požadavek.

AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

Přidá zadanou AuthorizeRequest událost do kolekce asynchronních AuthorizeRequest obslužných rutin událostí pro aktuální požadavek.

AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadanou AuthorizeRequest událost do kolekce asynchronních AuthorizeRequest obslužných rutin událostí pro aktuální požadavek.

AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler)

Přidá zadanou BeginRequest událost do kolekce asynchronních BeginRequest obslužných rutin událostí pro aktuální požadavek.

AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadanou BeginRequest událost do kolekce asynchronních BeginRequest obslužných rutin událostí pro aktuální požadavek.

AddOnEndRequestAsync(BeginEventHandler, EndEventHandler)

Přidá zadanou EndRequest událost do kolekce asynchronních EndRequest obslužných rutin událostí pro aktuální požadavek.

AddOnEndRequestAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadanou EndRequest událost do kolekce asynchronních EndRequest obslužných rutin událostí pro aktuální požadavek.

AddOnLogRequestAsync(BeginEventHandler, EndEventHandler)

Přidá zadanou LogRequest událost do kolekce asynchronních LogRequest obslužných rutin událostí pro aktuální požadavek.

AddOnLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadanou LogRequest událost do kolekce asynchronních LogRequest obslužných rutin událostí pro aktuální požadavek.

AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

Přidá zadanou MapRequestHandler událost do kolekce asynchronních MapRequestHandler obslužných rutin událostí pro aktuální požadavek.

AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadanou MapRequestHandler událost do kolekce asynchronních MapRequestHandler obslužných rutin událostí pro aktuální požadavek.

AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

Přidá zadanou PostAcquireRequestState událost do kolekce asynchronních PostAcquireRequestState obslužných rutin událostí pro aktuální požadavek.

AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadanou PostAcquireRequestState událost do kolekce asynchronních PostAcquireRequestState obslužných rutin událostí pro aktuální požadavek.

AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

Přidá zadanou PostAuthenticateRequest událost do kolekce asynchronních PostAuthenticateRequest obslužných rutin událostí pro aktuální požadavek.

AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadanou PostAuthorizeRequest událost do kolekce asynchronních PostAuthorizeRequest obslužných rutin událostí pro aktuální požadavek.

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

Přidá zadanou PostAuthorizeRequest událost do kolekce asynchronních PostAuthorizeRequest obslužných rutin událostí pro aktuální požadavek.

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadaný PostAuthorizeRequest objekt do kolekce asynchronních PostAuthorizeRequest obslužných rutin událostí pro aktuální požadavek.

AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler)

Přidá zadanou PostLogRequest událost do kolekce asynchronních PostLogRequest obslužných rutin událostí pro aktuální požadavek.

AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadanou PostLogRequest událost do kolekce asynchronních PostLogRequest obslužných rutin událostí pro aktuální požadavek.

AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

Přidá zadanou PostMapRequestHandler událost do kolekce asynchronních PostMapRequestHandler obslužných rutin událostí pro aktuální požadavek.

AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadanou PostMapRequestHandler událost do kolekce asynchronních PostMapRequestHandler obslužných rutin událostí pro aktuální požadavek.

AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

Přidá zadanou PostReleaseRequestState událost do kolekce asynchronních PostReleaseRequestState obslužných rutin událostí pro aktuální požadavek.

AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadanou PostReleaseRequestState událost do kolekce asynchronních PostReleaseRequestState obslužných rutin událostí pro aktuální požadavek.

AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

Přidá zadanou PostRequestHandlerExecute událost do kolekce asynchronních PostRequestHandlerExecute obslužných rutin událostí pro aktuální požadavek.

AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadanou PostRequestHandlerExecute událost do kolekce asynchronních PostRequestHandlerExecute obslužných rutin událostí pro aktuální požadavek.

AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

Přidá zadanou PostResolveRequestCache událost do kolekce asynchronních PostResolveRequestCache obslužných rutin událostí pro aktuální požadavek.

AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadanou PostResolveRequestCache událost do kolekce asynchronních PostResolveRequestCache obslužných rutin událostí pro aktuální požadavek.

AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

Přidá zadanou PostUpdateRequestCache událost do kolekce asynchronních PostUpdateRequestCache obslužných rutin událostí pro aktuální požadavek.

AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadanou PostUpdateRequestCache událost do kolekce asynchronních PostUpdateRequestCache obslužných rutin událostí pro aktuální požadavek.

AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

Přidá zadanou PreRequestHandlerExecute událost do kolekce asynchronních PreRequestHandlerExecute obslužných rutin událostí pro aktuální požadavek.

AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadanou PreRequestHandlerExecute událost do kolekce asynchronních PreRequestHandlerExecute obslužných rutin událostí pro aktuální požadavek.

AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

Přidá zadanou ReleaseRequestState událost do kolekce asynchronních ReleaseRequestState obslužných rutin událostí pro aktuální požadavek.

AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadanou ReleaseRequestState událost do kolekce asynchronních ReleaseRequestState obslužných rutin událostí pro aktuální požadavek.

AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

Přidá zadanou ResolveRequestCache obslužnou rutinu události do kolekce asynchronních ResolveRequestCache obslužných rutin událostí pro aktuální požadavek.

AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadanou ResolveRequestCache obslužnou rutinu události do kolekce asynchronních ResolveRequestCache obslužných rutin událostí pro aktuální požadavek.

AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

Přidá zadanou UpdateRequestCache událost do kolekce asynchronních UpdateRequestCache obslužných rutin událostí pro aktuální požadavek.

AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadanou UpdateRequestCache událost do kolekce asynchronních UpdateRequestCache obslužných rutin událostí pro aktuální požadavek.

CompleteRequest()

Způsobí, že ASP.NET obejití všech událostí a filtrování v řetězci spuštění kanálů HTTP a přímo spustí EndRequest událost.

Dispose()

HttpApplication Odstraní instanci.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetOutputCacheProviderName(HttpContext)

Získá název výchozího zprostředkovatele výstupní mezipaměti, který je nakonfigurován pro web.

GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
GetVaryByCustomString(HttpContext, String)

Poskytuje implementaci VaryByCustom vlastnosti v rámci aplikace.

Init()

Spustí vlastní inicializační kód po přidání všech modulů obslužné rutiny událostí.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
OnExecuteRequestStep(Action<HttpContextBase,Action>)

Určuje zpětné volání, které se má vyvolat při provedení kroku provádění požadavku.

RegisterModule(Type)

Zaregistruje modul aplikace.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Událost

AcquireRequestState

Nastane, když ASP.NET získá aktuální stav (například stav relace), který je přidružen k aktuálnímu požadavku.

AuthenticateRequest

Vyvolá se, když modul zabezpečení vytvoří identitu uživatele.

AuthorizeRequest

Vyvolá se v případě, že modul zabezpečení ověřil autorizaci uživatele.

BeginRequest

Vyvolá se jako první událost v řetězci spuštění kanálu HTTP, když ASP.NET reaguje na požadavek.

Disposed

Vyvolá se při odstranění aplikace.

EndRequest

Vyvolá se jako poslední událost v řetězci spuštění kanálu HTTP, když ASP.NET reaguje na požadavek.

Error

Vyvolá se při vyvolání neošetřené výjimky.

LogRequest

Vyvolá se těsně před ASP.NET provede jakékoli protokolování aktuálního požadavku.

MapRequestHandler

Vyvolá se, když je obslužná rutina vybrána pro odpověď na požadavek.

PostAcquireRequestState

Nastane, když byl získán stav požadavku (například stav relace), který je přidružen k aktuálnímu požadavku.

PostAuthenticateRequest

Vyvolá se, když modul zabezpečení vytvoří identitu uživatele.

PostAuthorizeRequest

Vyvolá se v případě, že byl autorizován uživatel aktuálního požadavku.

PostLogRequest

Vyvolá se, když ASP.NET dokončil zpracování všech obslužných rutin událostí LogRequest pro událost.

PostMapRequestHandler

Vyvolá se v případě, že ASP.NET namapoval aktuální požadavek na příslušnou obslužnou rutinu události.

PostReleaseRequestState

Vyvolá se, když ASP.NET dokončil provádění všech obslužných rutin událostí požadavků a data stavu požadavku byla uložena.

PostRequestHandlerExecute

Nastane při ASP.NET obslužná rutina události (například stránka nebo webová služba XML) dokončí provádění.

PostResolveRequestCache

Nastane, když ASP.NET obchází spuštění aktuální obslužné rutiny události a umožňuje modulu ukládání do mezipaměti obsluhovat požadavek z mezipaměti.

PostUpdateRequestCache

Nastane, když ASP.NET dokončí aktualizaci modulů ukládání do mezipaměti a ukládání odpovědí, které se používají k obsluhování následných požadavků z mezipaměti.

PreRequestHandlerExecute

Nastane těsně před ASP.NET spuštění obslužné rutiny události (například stránka nebo webová služba XML).

PreSendRequestContent

Nastane těsně před ASP.NET odešle obsah klientovi.

PreSendRequestHeaders

Nastane těsně před ASP.NET odešle hlavičky HTTP klientovi.

ReleaseRequestState

Vyvolá se po dokončení ASP.NET provádění všech obslužných rutin událostí požadavků. Tato událost způsobí, že stavové moduly uloží data aktuálního stavu.

RequestCompleted

Vyvolá se při uvolnění spravovaných objektů, které jsou přidruženy k požadavku.

ResolveRequestCache

Nastane, když ASP.NET dokončí autorizační událost, aby moduly ukládání do mezipaměti poskytovaly požadavky z mezipaměti a obchází provádění obslužné rutiny události (například stránky nebo webové služby XML).

UpdateRequestCache

Nastane, když ASP.NET dokončí provádění obslužné rutiny události, aby moduly ukládání do mezipaměti ukládat odpovědi, které budou použity k obsluhování následných požadavků z mezipaměti.

Explicitní implementace rozhraní

IHttpAsyncHandler.BeginProcessRequest(HttpContext, AsyncCallback, Object)

Inicializuje asynchronní volání obslužné rutiny události HTTP.

IHttpAsyncHandler.EndProcessRequest(IAsyncResult)

Poskytuje asynchronní metodu procesu End po dokončení procesu.

IHttpHandler.IsReusable

Boolean Získá hodnotu označující, zda jiný požadavek může použít IHttpHandler objekt.

IHttpHandler.ProcessRequest(HttpContext)

Umožňuje zpracování webových požadavků HTTP vlastní obslužnou rutinou HTTP, která implementuje IHttpHandler rozhraní.

Platí pro

Viz také