HttpApplication Třída

Definice

Definuje metody, vlastnosti a události, které jsou společné pro všechny objekty aplikace v aplikaci ASP.NET. 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í událost. Druhý příklad ukazuje, jak upravit Web.config soubor.

Následující příklad ukazuje, jak vytvořit vlastní modul HTTP a připojit AcquireRequestState událost k modulu HTTP. Moduly HTTP zachytí každý požadavek na prostředky webové aplikace, což vám umožní filtrovat požadavky klientů. Každý modul HTTP, který se přihlásí 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ž dojde k události ve vlastním modulu HTTP, musíte upravit nastavení konfigurace v souboru Web.config a upozornit ASP.NET o modulu HTTP. Následující příklad ukazuje odpovídající nastavení konfigurace v httpModules části Web.config souboru. Následující nastavení platí pro klasický režim služby IIS 7.0 a 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 třídy HttpApplication jsou vytvořeny v infrastruktuře ASP.NET, nikoli přímo uživatelem. Jedna instance HttpApplication třídy se používá ke zpracování mnoha požadavků v jeho životnosti. Může však zpracovat pouze jeden požadavek najednou. Členské proměnné je tedy možné použít k ukládání dat podle požadavku.

Aplikace vyvolává události, které lze zpracovat vlastními moduly, které implementují IHttpModule rozhraní nebo kód obslužné rutiny události, který je definován v souboru Global.asax. Vlastní moduly, které implementují IHttpModule rozhraní, mohou být vloženy 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 naleznete v tématu Verze a závislosti.

Note

Při spuštění služby IIS 7.0 v integrovaném režimu se vlastní moduly ve složce App_Code nebo ve složce Bin vztahují na všechny požadavky v kanálu žádosti. 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 PostMapRequestHandler událostí se vytvoří obslužná rutina události (což je stránka odpovídající adrese URL požadavku). Pokud server používá službu IIS 7.0 v integrovaném režimu a alespoň .NET Framework verze 3.0, vyvolá se událost MapRequestHandler. 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 vyfiltruje výstup 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 alespoň v .NET Framework 3.0.

  18. PostLogRequest

    Tato událost je podporována v integrovaném režimu služby IIS 7.0 a alespoň .NET Framework 3.0.

  19. EndRequest

Konstruktory

Name Description
HttpApplication()

Inicializuje novou instanci HttpApplication třídy.

Vlastnosti

Name Description
Application

Získá aktuální stav aplikace.

Context

Získá informace specifické pro PROTOKOL HTTP o aktuálním požadavku.

Events

Získá seznam delegátů obslužné rutiny 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í odpověď 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í lokality pro implementaci IComponent .

User

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

Metody

Name Description
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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

Přidá zadaný PostAuthorizeRequest 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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

CompleteRequest()

Způsobí, že ASP.NET obejít všechny události a filtrování v řetězu kanálů HTTP a přímo spustit událost EndRequest.

Dispose()

HttpApplication Odstraní instanci.

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

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

Slouží jako výchozí funkce hash.

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

Získá Type aktuální instance.

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

Poskytuje implementaci VaryByCustom vlastnosti pro celou aplikaci.

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

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

Určuje zpětné volání, které se má vyvolat při spuštění 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

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

Nastane, když modul zabezpečení naváže identitu uživatele.

AuthorizeRequest

Nastane, když modul zabezpečení ověří autorizaci uživatele.

BeginRequest

Nastane jako první událost v řetězu spuštění kanálu HTTP, když ASP.NET odpoví na požadavek.

Disposed

Nastane, když je aplikace uvolněna.

EndRequest

Nastane jako poslední událost v řetězu kanálů HTTP při provádění ASP.NET reagovat na požadavek.

Error

Nastane, když je vyvolán neošetřená výjimka.

LogRequest

Nastane těsně před ASP.NET provede jakékoli protokolování pro aktuální požadavek.

MapRequestHandler

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

Nastane, když modul zabezpečení naváže identitu uživatele.

PostAuthorizeRequest

Nastane, když je uživatel pro aktuální požadavek autorizovaný.

PostLogRequest

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

PostMapRequestHandler

Nastane, když ASP.NET namapoval aktuální požadavek na příslušnou obslužnou rutinu události.

PostReleaseRequestState

Nastane, když ASP.NET dokončí provádění všech obslužných rutin událostí požadavku a data o stavu požadavku jsou uložena.

PostRequestHandlerExecute

Nastane, když 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í provádě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é slouží k poskytování následných požadavků z mezipaměti.

PreRequestHandlerExecute

Nastane těsně před tím, než ASP.NET spustí obslužnou rutinu události (například stránku nebo webovou službu XML).

PreSendRequestContent

Nastane těsně před tím, než ASP.NET odešle obsah klientovi.

PreSendRequestHeaders

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

ReleaseRequestState

Nastane po ASP.NET dokončení provádění všech obslužných rutin událostí požadavku. Tato událost způsobí, že moduly stavu uloží aktuální data o stavu.

RequestCompleted

Nastane, když byly vydány spravované objekty přidružené k požadavku.

ResolveRequestCache

Nastane, když ASP.NET dokončí autorizační událost, která umožní modulům ukládání do mezipaměti obsluhovat požadavky z mezipaměti, vynechání spuště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 do mezipaměti ukládaly odpovědi, které se použijí k poskytování následných požadavků z mezipaměti.

Explicitní implementace rozhraní

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

Zahájí 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 urč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é