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 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í:
-
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.
-
Obslužná rutina události se spustí.
-
Po vyvolání PostReleaseRequestState události budou výstup filtrovat všechny existující filtry odpovědí.
-
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.
-
Tato událost je podporována v integrovaném režimu služby IIS 7.0 a minimálně rozhraní .NET Framework 3.0.
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 |
IHttpHandler.IsReusable |
|
IHttpHandler.ProcessRequest(HttpContext) |
Umožňuje zpracování webových požadavků HTTP vlastní obslužnou rutinou HTTP, která implementuje IHttpHandler rozhraní. |