HttpApplication Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menentukan metode, properti, dan peristiwa yang umum untuk semua objek aplikasi dalam aplikasi ASP.NET. Kelas ini adalah kelas dasar untuk aplikasi yang ditentukan oleh pengguna dalam file 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
- Warisan
-
HttpApplication
- Penerapan
Contoh
Dua contoh berikut menunjukkan cara menggunakan HttpApplication kelas dan peristiwanya. Contoh pertama menunjukkan cara membuat modul HTTP kustom dan menyambungkan peristiwa ke modul tersebut. Contoh kedua menunjukkan cara mengubah file Web.config.
Contoh berikut menunjukkan cara membuat modul HTTP kustom dan menghubungkan AcquireRequestState peristiwa ke modul HTTP. Modul HTTP mencegat setiap permintaan ke sumber daya aplikasi Web, sehingga memungkinkan Anda memfilter permintaan klien. Modul HTTP apa pun yang berlangganan peristiwa HttpApplication harus mengimplementasikan IHttpModule antarmuka.
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
Sebelum peristiwa dalam modul HTTP kustom dapat terjadi, Anda harus mengubah pengaturan konfigurasi dalam file Web.config untuk memberi tahu ASP.NET tentang modul HTTP. Contoh berikut menunjukkan pengaturan konfigurasi yang sesuai di bagian httpModules
file Web.config. Pengaturan berikut berlaku untuk mode Klasik IIS 7.0 dan untuk versi IIS yang lebih lama.
<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>
Pengaturan berikut berlaku untuk mode Terintegrasi 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>
Keterangan
Instans HttpApplication kelas dibuat dalam infrastruktur ASP.NET, bukan oleh pengguna secara langsung. Satu instans HttpApplication kelas digunakan untuk memproses banyak permintaan selama masa pakainya. Namun, hanya dapat memproses satu permintaan pada satu waktu. Dengan demikian, variabel anggota dapat digunakan untuk menyimpan data per permintaan.
Aplikasi memunculkan peristiwa yang dapat ditangani oleh modul kustom yang mengimplementasikan IHttpModule antarmuka atau oleh kode penanganan aktivitas yang didefinisikan dalam file Global.asax. Modul kustom yang mengimplementasikan IHttpModule antarmuka dapat dimasukkan ke dalam folder App_Code atau di DLL di folder Bin.
HttpApplicationdiperkenalkan dalam .NET Framework versi 3.5. Untuk informasi selengkapnya, lihat Versi dan Dependensi.
Catatan
Saat menjalankan IIS 7.0 dalam mode Terintegrasi, modul kustom di folder App_Code atau folder Bin berlaku untuk semua permintaan dalam alur permintaan. Kode penanganan aktivitas dalam file Global.asax hanya berlaku untuk permintaan yang dipetakan ke handler ASP.NET.
Peristiwa aplikasi dinaikkan dalam urutan berikut:
-
PostResolveRequestCache Setelah peristiwa dan sebelum PostMapRequestHandler peristiwa, penanganan aktivitas (yang merupakan halaman yang sesuai dengan URL permintaan) dibuat. Saat server menjalankan IIS 7.0 dalam mode Terintegrasi dan setidaknya .NET Framework versi 3.0, MapRequestHandler peristiwa dinaikkan. Saat server menjalankan IIS 7.0 dalam mode Klasik atau versi IIS yang lebih lama, kejadian ini tidak dapat ditangani.
-
Penanganan aktivitas dijalankan.
-
PostReleaseRequestState Setelah peristiwa dinaikkan, filter respons yang ada akan memfilter output.
-
Kejadian ini didukung dalam mode Terintegrasi IIS 7.0 dan setidaknya .NET Framework 3.0
-
Kejadian ini didukung mode Terintegrasi IIS 7.0 dan setidaknya .NET Framework 3.0
Konstruktor
HttpApplication() |
Menginisialisasi instans baru kelas HttpApplication. |
Properti
Application |
Mendapatkan status aplikasi saat ini. |
Context |
Mendapatkan informasi khusus HTTP tentang permintaan saat ini. |
Events |
Mendapatkan daftar delegasi penanganan aktivitas yang memproses semua peristiwa aplikasi. |
Modules |
Mendapatkan koleksi modul untuk aplikasi saat ini. |
Request |
Mendapatkan objek permintaan intrinsik untuk permintaan saat ini. |
Response |
Mendapatkan objek respons intrinsik untuk permintaan saat ini. |
Server |
Mendapatkan objek server intrinsik untuk permintaan saat ini. |
Session |
Mendapatkan objek sesi intrinsik yang menyediakan akses ke data sesi. |
Site |
Mendapatkan atau mengatur antarmuka situs untuk implementasi IComponent . |
User |
Mendapatkan objek pengguna intrinsik untuk permintaan saat ini. |
Metode
AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler) |
Menambahkan peristiwa yang ditentukan AcquireRequestState ke kumpulan penanganan aktivitas asinkron AcquireRequestState untuk permintaan saat ini. |
AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object) |
Menambahkan peristiwa yang ditentukan AcquireRequestState ke kumpulan penanganan aktivitas asinkron AcquireRequestState untuk permintaan saat ini. |
AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler) |
Menambahkan peristiwa yang ditentukan AuthenticateRequest ke kumpulan penanganan aktivitas asinkron AuthenticateRequest untuk permintaan saat ini. |
AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Menambahkan peristiwa yang ditentukan AuthenticateRequest ke kumpulan penanganan aktivitas asinkron AuthenticateRequest untuk permintaan saat ini. |
AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler) |
Menambahkan peristiwa yang ditentukan AuthorizeRequest ke kumpulan penanganan aktivitas asinkron AuthorizeRequest untuk permintaan saat ini. |
AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Menambahkan peristiwa yang ditentukan AuthorizeRequest ke kumpulan penanganan aktivitas asinkron AuthorizeRequest untuk permintaan saat ini. |
AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler) |
Menambahkan peristiwa yang ditentukan BeginRequest ke kumpulan penanganan aktivitas asinkron BeginRequest untuk permintaan saat ini. |
AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Menambahkan peristiwa yang ditentukan BeginRequest ke kumpulan penanganan aktivitas asinkron BeginRequest untuk permintaan saat ini. |
AddOnEndRequestAsync(BeginEventHandler, EndEventHandler) |
Menambahkan peristiwa yang ditentukan EndRequest ke kumpulan penanganan aktivitas asinkron EndRequest untuk permintaan saat ini. |
AddOnEndRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Menambahkan peristiwa yang ditentukan EndRequest ke kumpulan penanganan aktivitas asinkron EndRequest untuk permintaan saat ini. |
AddOnLogRequestAsync(BeginEventHandler, EndEventHandler) |
Menambahkan peristiwa yang ditentukan LogRequest ke kumpulan penanganan aktivitas asinkron LogRequest untuk permintaan saat ini. |
AddOnLogRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Menambahkan peristiwa yang ditentukan LogRequest ke kumpulan penanganan aktivitas asinkron LogRequest untuk permintaan saat ini. |
AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler) |
Menambahkan peristiwa yang ditentukan MapRequestHandler ke kumpulan penanganan aktivitas asinkron MapRequestHandler untuk permintaan saat ini. |
AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object) |
Menambahkan peristiwa yang ditentukan MapRequestHandler ke kumpulan penanganan aktivitas asinkron MapRequestHandler untuk permintaan saat ini. |
AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler) |
Menambahkan peristiwa yang ditentukan PostAcquireRequestState ke kumpulan penanganan aktivitas asinkron PostAcquireRequestState untuk permintaan saat ini. |
AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object) |
Menambahkan peristiwa yang ditentukan PostAcquireRequestState ke kumpulan penanganan aktivitas asinkron PostAcquireRequestState untuk permintaan saat ini. |
AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler) |
Menambahkan peristiwa yang ditentukan PostAuthenticateRequest ke kumpulan penanganan aktivitas asinkron PostAuthenticateRequest untuk permintaan saat ini. |
AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Menambahkan peristiwa yang ditentukan PostAuthorizeRequest ke kumpulan penanganan aktivitas asinkron PostAuthorizeRequest untuk permintaan saat ini. |
AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler) |
Menambahkan peristiwa yang ditentukan PostAuthorizeRequest ke kumpulan penanganan aktivitas asinkron PostAuthorizeRequest untuk permintaan saat ini. |
AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Menambahkan yang ditentukan PostAuthorizeRequest ke kumpulan penanganan aktivitas asinkron PostAuthorizeRequest untuk permintaan saat ini. |
AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler) |
Menambahkan peristiwa yang ditentukan PostLogRequest ke kumpulan penanganan aktivitas asinkron PostLogRequest untuk permintaan saat ini. |
AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler, Object) |
Menambahkan peristiwa yang ditentukan PostLogRequest ke kumpulan penanganan aktivitas asinkron PostLogRequest untuk permintaan saat ini. |
AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler) |
Menambahkan peristiwa yang ditentukan PostMapRequestHandler ke kumpulan penanganan aktivitas asinkron PostMapRequestHandler untuk permintaan saat ini. |
AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object) |
Menambahkan peristiwa yang ditentukan PostMapRequestHandler ke kumpulan penanganan aktivitas asinkron PostMapRequestHandler untuk permintaan saat ini. |
AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler) |
Menambahkan peristiwa yang ditentukan PostReleaseRequestState ke kumpulan penanganan aktivitas asinkron PostReleaseRequestState untuk permintaan saat ini. |
AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object) |
Menambahkan peristiwa yang ditentukan PostReleaseRequestState ke kumpulan penanganan aktivitas asinkron PostReleaseRequestState untuk permintaan saat ini. |
AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler) |
Menambahkan peristiwa yang ditentukan PostRequestHandlerExecute ke kumpulan penanganan aktivitas asinkron PostRequestHandlerExecute untuk permintaan saat ini. |
AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object) |
Menambahkan peristiwa yang ditentukan PostRequestHandlerExecute ke kumpulan penanganan aktivitas asinkron PostRequestHandlerExecute untuk permintaan saat ini. |
AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler) |
Menambahkan peristiwa yang ditentukan PostResolveRequestCache ke kumpulan penanganan aktivitas asinkron PostResolveRequestCache untuk permintaan saat ini. |
AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object) |
Menambahkan peristiwa yang ditentukan PostResolveRequestCache ke kumpulan penanganan aktivitas asinkron PostResolveRequestCache untuk permintaan saat ini. |
AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler) |
Menambahkan peristiwa yang ditentukan PostUpdateRequestCache ke kumpulan penanganan aktivitas asinkron PostUpdateRequestCache untuk permintaan saat ini. |
AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object) |
Menambahkan peristiwa yang ditentukan PostUpdateRequestCache ke kumpulan penanganan aktivitas asinkron PostUpdateRequestCache untuk permintaan saat ini. |
AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler) |
Menambahkan peristiwa yang ditentukan PreRequestHandlerExecute ke kumpulan penanganan aktivitas asinkron PreRequestHandlerExecute untuk permintaan saat ini. |
AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object) |
Menambahkan peristiwa yang ditentukan PreRequestHandlerExecute ke kumpulan penanganan aktivitas asinkron PreRequestHandlerExecute untuk permintaan saat ini. |
AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler) |
Menambahkan peristiwa yang ditentukan ReleaseRequestState ke kumpulan penanganan aktivitas asinkron ReleaseRequestState untuk permintaan saat ini. |
AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object) |
Menambahkan peristiwa yang ditentukan ReleaseRequestState ke kumpulan penanganan aktivitas asinkron ReleaseRequestState untuk permintaan saat ini. |
AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler) |
Menambahkan penanganan aktivitas yang ditentukan ResolveRequestCache ke kumpulan penanganan aktivitas asinkron ResolveRequestCache untuk permintaan saat ini. |
AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object) |
Menambahkan penanganan aktivitas yang ditentukan ResolveRequestCache ke kumpulan penanganan aktivitas asinkron ResolveRequestCache untuk permintaan saat ini. |
AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler) |
Menambahkan peristiwa yang ditentukan UpdateRequestCache ke kumpulan penanganan aktivitas asinkron UpdateRequestCache untuk permintaan saat ini. |
AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object) |
Menambahkan peristiwa yang ditentukan UpdateRequestCache ke kumpulan penanganan aktivitas asinkron UpdateRequestCache untuk permintaan saat ini. |
CompleteRequest() |
Menyebabkan ASP.NET melewati semua peristiwa dan pemfilteran dalam rantai eksekusi alur HTTP dan langsung menjalankan EndRequest peristiwa. |
Dispose() |
Membuang instans HttpApplication . |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetOutputCacheProviderName(HttpContext) |
Mendapatkan nama penyedia output-cache default yang dikonfigurasi untuk situs Web. |
GetType() |
Mendapatkan instans Type saat ini. (Diperoleh dari Object) |
GetVaryByCustomString(HttpContext, String) |
Menyediakan implementasi properti di VaryByCustom seluruh aplikasi. |
Init() |
Menjalankan kode inisialisasi kustom setelah semua modul penanganan aktivitas ditambahkan. |
MemberwiseClone() |
Membuat salinan dangkal dari yang saat ini Object. (Diperoleh dari Object) |
OnExecuteRequestStep(Action<HttpContextBase,Action>) |
Menentukan panggilan balik untuk dipanggil saat langkah eksekusi permintaan dijalankan. |
RegisterModule(Type) |
Mendaftarkan modul aplikasi. |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Acara
AcquireRequestState |
Terjadi ketika ASP.NET memperoleh status saat ini (misalnya, status sesi) yang terkait dengan permintaan saat ini. |
AuthenticateRequest |
Terjadi ketika modul keamanan telah menetapkan identitas pengguna. |
AuthorizeRequest |
Terjadi ketika modul keamanan telah memverifikasi otorisasi pengguna. |
BeginRequest |
Terjadi sebagai peristiwa pertama dalam rantai eksekusi alur HTTP saat ASP.NET merespons permintaan. |
Disposed |
Terjadi ketika aplikasi dibuang. |
EndRequest |
Terjadi sebagai peristiwa terakhir dalam rantai eksekusi alur HTTP saat ASP.NET merespons permintaan. |
Error |
Terjadi ketika pengecualian yang tidak tertangani dilemparkan. |
LogRequest |
Terjadi tepat sebelum ASP.NET melakukan pengelogan apa pun untuk permintaan saat ini. |
MapRequestHandler |
Terjadi ketika handler dipilih untuk merespons permintaan. |
PostAcquireRequestState |
Terjadi ketika status permintaan (misalnya, status sesi) yang terkait dengan permintaan saat ini telah diperoleh. |
PostAuthenticateRequest |
Terjadi ketika modul keamanan telah menetapkan identitas pengguna. |
PostAuthorizeRequest |
Terjadi ketika pengguna untuk permintaan saat ini telah diotorisasi. |
PostLogRequest |
Terjadi ketika ASP.NET telah selesai memproses semua penanganan aktivitas untuk peristiwa tersebut LogRequest . |
PostMapRequestHandler |
Terjadi ketika ASP.NET telah memetakan permintaan saat ini ke penanganan aktivitas yang sesuai. |
PostReleaseRequestState |
Terjadi ketika ASP.NET telah selesai menjalankan semua penanganan aktivitas permintaan dan data status permintaan telah disimpan. |
PostRequestHandlerExecute |
Terjadi ketika penanganan aktivitas ASP.NET (misalnya, halaman atau layanan Web XML) selesai dieksekusi. |
PostResolveRequestCache |
Terjadi ketika ASP.NET melewati eksekusi penanganan aktivitas saat ini dan memungkinkan modul penembolokan untuk melayani permintaan dari cache. |
PostUpdateRequestCache |
Terjadi ketika ASP.NET selesai memperbarui modul penembolokan dan menyimpan respons yang digunakan untuk melayani permintaan berikutnya dari cache. |
PreRequestHandlerExecute |
Terjadi tepat sebelum ASP.NET mulai menjalankan penanganan aktivitas (misalnya, halaman atau layanan Web XML). |
PreSendRequestContent |
Terjadi tepat sebelum ASP.NET mengirim konten ke klien. |
PreSendRequestHeaders |
Terjadi tepat sebelum ASP.NET mengirim header HTTP ke klien. |
ReleaseRequestState |
Terjadi setelah ASP.NET selesai menjalankan semua penanganan aktivitas permintaan. Kejadian ini menyebabkan modul status menyimpan data status saat ini. |
RequestCompleted |
Terjadi ketika objek terkelola yang terkait dengan permintaan telah dirilis. |
ResolveRequestCache |
Terjadi ketika ASP.NET menyelesaikan peristiwa otorisasi untuk membiarkan modul penembolokan melayani permintaan dari cache, melewati eksekusi penanganan aktivitas (misalnya, halaman atau layanan Web XML). |
UpdateRequestCache |
Terjadi ketika ASP.NET selesai menjalankan penanganan aktivitas untuk membiarkan modul penembolokan menyimpan respons yang akan digunakan untuk melayani permintaan berikutnya dari cache. |
Implementasi Antarmuka Eksplisit
IHttpAsyncHandler.BeginProcessRequest(HttpContext, AsyncCallback, Object) |
Memulai panggilan asinkron ke penanganan aktivitas HTTP. |
IHttpAsyncHandler.EndProcessRequest(IAsyncResult) |
Menyediakan metode proses |
IHttpHandler.IsReusable |
Mendapatkan nilai yang |
IHttpHandler.ProcessRequest(HttpContext) |
Memungkinkan pemrosesan permintaan Web HTTP oleh handler HTTP kustom yang mengimplementasikan IHttpHandler antarmuka. |