HttpApplication Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
bir ASP.NET uygulamasındaki tüm uygulama nesneleri için ortak olan yöntemleri, özellikleri ve olayları tanımlar. Bu sınıf, Global.asax dosyasında kullanıcı tarafından tanımlanan uygulamalar için temel sınıftır.
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
- Devralma
-
HttpApplication
- Uygulamalar
Örnekler
Aşağıdaki iki örnekte sınıfın HttpApplication ve olaylarının nasıl kullanılacağı gösterilmektedir. İlk örnekte özel bir HTTP modülü oluşturma ve bir olayı buna bağlama işlemleri gösterilmektedir. İkinci örnekte Web.config dosyasının nasıl değiştirileceği gösterilmektedir.
Aşağıdaki örnekte özel bir HTTP modülü oluşturma ve olayı HTTP modülüne AcquireRequestState bağlama işlemleri gösterilmektedir. HTTP modülleri, Web uygulaması kaynaklarına yönelik her isteği keserek istemci isteklerini filtrelemenize olanak tanır. Bir HttpApplication olaya abone olan tüm HTTP modülleri arabirimini IHttpModule uygulamalıdır.
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
Özel bir HTTP modülündeki bir olayın gerçekleşebilmesi için önce Web.config dosyasındaki yapılandırma ayarlarını http modülü hakkında ASP.NET bildirimde bulunacak şekilde değiştirmeniz gerekir. Aşağıdaki örnek, Web.config dosyasının httpModules
bölümünde uygun yapılandırma ayarını gösterir. Aşağıdaki ayar, IIS 7.0 Klasik modu ve IIS'nin önceki sürümleri için geçerlidir.
<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>
Aşağıdaki ayar IIS 7.0 Tümleşik modu için geçerlidir.
<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>
Açıklamalar
Sınıfın HttpApplication örnekleri doğrudan kullanıcı tarafından değil ASP.NET altyapısında oluşturulur. Sınıfının bir örneği HttpApplication , ömrü boyunca birçok isteği işlemek için kullanılır. Ancak, aynı anda yalnızca bir isteği işleyebilir. Bu nedenle, üye değişkenleri istek başına verileri depolamak için kullanılabilir.
Uygulama, arabirimini uygulayan IHttpModule özel modüller veya Global.asax dosyasında tanımlanan olay işleyicisi kodu tarafından işlenebilen olayları tetikler. Arabirimi uygulayan IHttpModule özel modüller App_Code klasörüne veya Bin klasöründeki bir DLL'ye yerleştirilebilir.
HttpApplication.NET Framework sürüm 3.5'te kullanıma sunulmuştur. Daha fazla bilgi için bkz . Sürümler ve Bağımlılıklar.
Not
TÜMLEŞIK modda IIS 7.0 çalıştırırken, App_Code klasöründeki veya Bin klasöründeki özel modüller istek işlem hattındaki tüm isteklere uygulanır. Global.asax dosyasındaki olay işleyicisi kodu yalnızca bir ASP.NET işleyicisine eşlenen istekler için geçerlidir.
Uygulama olayları aşağıdaki sırayla oluşturulur:
-
PostResolveRequestCache Olaydan sonra ve olaydan önce PostMapRequestHandler bir olay işleyicisi (istek URL'sine karşılık gelen bir sayfadır) oluşturulur. Bir sunucu Tümleşik modda IIS 7.0 ve en azından .NET Framework sürüm 3.0 çalıştırıyorsa, MapRequestHandler olay tetikler. Bir sunucu Klasik modda veya IIS'nin önceki bir sürümünde IIS 7.0 çalıştırıyorsa, bu olay işlenemez.
-
Olay işleyicisi yürütülür.
-
PostReleaseRequestState Olay yükseltildikten sonra, var olan tüm yanıt filtreleri çıkışı filtreler.
-
Bu olay IIS 7.0 Tümleşik modunda ve en az .NET Framework 3.0'da desteklenir
-
Bu olay IIS 7.0 Tümleşik modu ve en azından .NET Framework 3.0 desteklenir
Oluşturucular
HttpApplication() |
HttpApplication sınıfının yeni bir örneğini başlatır. |
Özellikler
Application |
Bir uygulamanın geçerli durumunu alır. |
Context |
Geçerli istekle ilgili HTTP'ye özgü bilgileri alır. |
Events |
Tüm uygulama olaylarını işleyen olay işleyicisi temsilcilerinin listesini alır. |
Modules |
Geçerli uygulama için modül koleksiyonunu alır. |
Request |
Geçerli istek için iç istek nesnesini alır. |
Response |
Geçerli istek için iç yanıt nesnesini alır. |
Server |
Geçerli istek için iç sunucu nesnesini alır. |
Session |
Oturum verilerine erişim sağlayan iç oturum nesnesini alır. |
Site |
Uygulama için IComponent bir site arabirimi alır veya ayarlar. |
User |
Geçerli istek için iç kullanıcı nesnesini alır. |
Yöntemler
Ekinlikler
AcquireRequestState |
ASP.NET geçerli istekle ilişkili geçerli durumu (örneğin, oturum durumu) aldığı zaman gerçekleşir. |
AuthenticateRequest |
Bir güvenlik modülü kullanıcının kimliğini oluşturduğunda gerçekleşir. |
AuthorizeRequest |
Bir güvenlik modülü doğrulanmış kullanıcı yetkilendirmesi olduğunda gerçekleşir. |
BeginRequest |
ASP.NET bir isteği yanıtladığında HTTP işlem hattı yürütme zincirindeki ilk olay olarak gerçekleşir. |
Disposed |
Uygulama atıldığında gerçekleşir. |
EndRequest |
ASP.NET bir isteği yanıtladığında HTTP işlem hattı yürütme zincirindeki son olay olarak gerçekleşir. |
Error |
İşlenmeyen bir özel durum oluştuğunda gerçekleşir. |
LogRequest |
ASP.NET geçerli istek için herhangi bir günlük kaydı gerçekleştirmeden hemen önce gerçekleşir. |
MapRequestHandler |
İşleyici isteği yanıtlamak için seçildiğinde gerçekleşir. |
PostAcquireRequestState |
Geçerli istekle ilişkili istek durumu (örneğin, oturum durumu) elde edildiğinde gerçekleşir. |
PostAuthenticateRequest |
Bir güvenlik modülü kullanıcının kimliğini oluşturduğunda gerçekleşir. |
PostAuthorizeRequest |
Geçerli istek için kullanıcı yetkilendirildiğinde gerçekleşir. |
PostLogRequest |
ASP.NET olay için LogRequest tüm olay işleyicilerini işlemeyi tamamladığında gerçekleşir. |
PostMapRequestHandler |
ASP.NET geçerli isteği uygun olay işleyicisine eşlediğinde gerçekleşir. |
PostReleaseRequestState |
ASP.NET tüm istek olay işleyicilerini yürütmeyi tamamladığında ve istek durumu verileri depolandığında gerçekleşir. |
PostRequestHandlerExecute |
ASP.NET olay işleyicisi (örneğin, bir sayfa veya XML Web hizmeti) yürütmeyi tamamladığında gerçekleşir. |
PostResolveRequestCache |
ASP.NET geçerli olay işleyicisinin yürütülmesini atladığında ve önbelleğe alma modülünün önbellekten bir isteğe hizmet etmesine izin verdiğinde gerçekleşir. |
PostUpdateRequestCache |
ASP.NET önbelleğe alma modüllerini güncelleştirmeyi ve önbellekten sonraki isteklere hizmet etmek için kullanılan yanıtları depolamayı tamamladığında gerçekleşir. |
PreRequestHandlerExecute |
ASP.NET olay işleyicisi yürütmeye başlamadan hemen önce gerçekleşir (örneğin, bir sayfa veya XML Web hizmeti). |
PreSendRequestContent |
ASP.NET istemciye içerik göndermeden hemen önce gerçekleşir. |
PreSendRequestHeaders |
ASP.NET istemciye HTTP üst bilgileri göndermeden hemen önce gerçekleşir. |
ReleaseRequestState |
ASP.NET tüm istek olay işleyicilerini yürütmeyi bitirdikten sonra gerçekleşir. Bu olay durum modüllerinin geçerli durum verilerini kaydetmesine neden olur. |
RequestCompleted |
İstekle ilişkili yönetilen nesneler serbest bırakıldığında gerçekleşir. |
ResolveRequestCache |
ASP.NET, önbelleğe alma modüllerinin önbellekten istek göndermesine izin vermek için bir yetkilendirme olayını tamamladığında, olay işleyicisinin yürütülmesini atlayarak (örneğin, bir sayfa veya XML Web hizmeti) gerçekleşir. |
UpdateRequestCache |
önbelleğe alma modüllerinin önbellekten gelen sonraki isteklere hizmet vermek için kullanılacak yanıtları depolamasına izin vermek için ASP.NET bir olay işleyicisi yürütmeyi bitirdiğinde gerçekleşir. |
Belirtik Arabirim Kullanımları
IHttpAsyncHandler.BeginProcessRequest(HttpContext, AsyncCallback, Object) |
HTTP olay işleyicisine zaman uyumsuz bir çağrı başlatır. |
IHttpAsyncHandler.EndProcessRequest(IAsyncResult) |
İşlem |
IHttpHandler.IsReusable |
Başka bir isteğin nesneyi kullanıp kullanamayacağını IHttpHandler belirten bir |
IHttpHandler.ProcessRequest(HttpContext) |
Arabirimi uygulayan özel bir HTTP işleyicisi tarafından HTTP Web isteklerinin işlenmesini IHttpHandler sağlar. |