HttpApplication Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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í:
-
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.
-
Obslužná rutina události se spustí.
-
Po vyvolání PostReleaseRequestState události vyfiltruje výstup všechny existující filtry odpovědí.
-
Tato událost je podporována v integrovaném režimu služby IIS 7.0 a alespoň v .NET Framework 3.0.
-
Tato událost je podporována v integrovaném režimu služby IIS 7.0 a alespoň .NET Framework 3.0.
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 |
| IHttpHandler.IsReusable |
|
| IHttpHandler.ProcessRequest(HttpContext) |
Umožňuje zpracování webových požadavků HTTP vlastní obslužnou rutinou HTTP, která implementuje IHttpHandler rozhraní. |