Bu adım adım makalede, Visual C# .NET basit, özel bir HTTP modülü oluşturmak için nasıl kullanılacağını gösterir. Bu makalede, oluşturmak, dağıtmak ve modülü yapılandırma nasıl yan? s?ra modülünde bir Global.asax dosyasına bir olayı oluşturan kanca nasıl gösterilmektedir.
MyModule adlı yeni bir Visual Studio .NET C# sınıf kitaplığı projesi oluşturun.
System.Web.dll derlemesine ayarlayın.
Sınıf için şu yönergeyi ekleyin:
using System.Web;
Sınıf SyncModule.cs olarak yeniden adlandırın ve sonra bunu yansıtması için sınıf tanımını değiştirin.
ıhttpmodule arabirimini uygular. Bilgisayarınıza bir sınıf tanımı aşağıdaki gibi görünmelidir:
public class SyncModule : IHttpModule
Karar vermek için hangi olayların abone. Aşağıdaki listede, kullanılabilir olayları abone olabileceğiniz HttpApplication nesnesinden önerilmektedir:
AcquireRequestState: Modül durumunu (örneğin, oturum) isteği almak veya vermek için bu olay çağrısı.
AuthenticateRequest: güvenlik modülü, isteği işler için önce kullanıcı kimlik doğrulaması gerektiğinde, bu olay çağrısı.
AuthorizeRequest: istek yetkiniz gerektiğinde bu olay, bir güvenlik modülü tarafından çağrısı. Kimlik doğrulamasından sonra</a1> olarak adlandırılır.
BeginRequest: yeni bir isteği başlayan bir modüle bildirmek için bu olay çağrısı.
Disposed: uygulama, herhangi bir nedenle bitiş modül bildirmek için bu olay çağrısı. Iç temizleme gerçekleştirmek modül) verir.
EndRequest: istek Sonlandırma Modülü bildirmek için bu olay çağrısı.
Hata: istek işlenirken oluşan bir hata modülü bildirmek için bu olay çağrısı.
PostRequestHandlerExecute: Bu olay işleyiciyi isteği işlemeyi tamamladı modülü bildirmek için arama.
PreRequestHandlerExecute: istek işleyicisini yaklaşık olarak modülünü bildirmek için bu olay çağrısı.
PreSendRequestContent: içerik istemciye gönderilecek modülünü bildirmek için bu olay çağrısı.
PreSendRequestHeaders: HTTP başlıklarını istemciye gönderilecek olan modül bildirmek için bu olay çağrısı.
ReleaseRequestState: Bu olay işleyiciyi isteği işlemeyi tamamladı çünkü durumu yayımlamayı modülü izin vermek için arama.
ResolveRequestCache: Bu olay, kimlik doğrulamasından sonra Call. Önbelleğe alma modülleri bu olay, isteği önbelleğinde tarafından işleneceğini veya bir işleyici isteği işlemesi belirlemek için kullanın.
UpdateRequestCache: Bu olay, bir yanıt işleyicinin sonra Call. Modüller önbellekleme önbelleğe yanıt ile güncelleştirmeniz gerekir.
Bu örnek, BeginRequest olay kullanır.
ınit ve atmaıhttpmodule arabirim yöntemleri gibi uygulamak:
public void Init(HttpApplication app)
{
app.BeginRequest += new EventHandler(OnBeginRequest);
}
public void Dispose(){ }
Olay bir temsilci gibi oluşturma:
public delegate void MyEventHandler(Object s, EventArgs e);
Olay başvurusu tutulacağı MyEventHandler türünde özel bir yerel değişken tanımlayın:
private MyEventHandler _eventHandler = null;
Global.asax dosyasına veya HttpApplication nesneden devralan bir sınıf yöntemi temsilciye kurmak için kanca oluşturur, olay oluşturma:
HttpApplication <a1>BeginRequest</a1> olayı için kanca oluşturur OnBeginRequest yöntemi oluştur:
public void OnBeginRequest(Object s, EventArgs e)
{
HttpApplication app = s as HttpApplication;
app.Context.Response.Write("Hello from OnBeginRequest in custom module.<br>");
if(_eventHandler!=null)
_eventHandler(this, null);
}
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:307996
(http://support.microsoft.com/kb/307996/en-us/
)
Bu makaleyi kullanmak için ne kadar kişisel çaba harcadınız?
Çok az
Az
Orta
Fazla
Çok fazla
Bu bilgiyi geliştirmemiz için nedenleri ve bu konuda neler yapabileceğimizi paylaşın
Teşekkürler! Görüşleriniz, destek içeriğimizi geliştirmemize yardımcı olmak için kullanılmaktadır. Diğer yardım seçenekleri için, lütfen Yardım ve Destek Giriş Sayfasını ziyaret edin.