|
|
Yayınlandı 13.03.2018 21:46:06
|
|
|
|

Önünde yazılı
IHttpModule'un ilgili içeriğiyle ilgili olarak, mülakat sırasında bana da soruldu ve bu arayüzün uygulama sınıfında Init yöntemiyle bir dizi olay kaydedebilen bir Init yöntemi olduğunu belirsiz hissettim. Bu hafta sonu evde, bu bilgideki boşlukları kontrol edip doldurmak bile olsa, yapılacak hiçbir şey yok.
IHttpModule çalışmaları
asp.net yaşam döngüsüne aşina olan arkadaşlar, HttpModule'un yürütülmesinin HttpHandler'dan önce ve HttpModule'da bir dizi olay başlatıldıktan sonra, ardından HttpHandler çalıştırıldıktan ve ardından bazı HttpModule olaylarının yürütüldüğünü bilmelidir. Detaylar için lütfen aşağıdaki yaşam döngüsü diyagramına bakınız.
HttpHandler, HTTP isteğini işletmek için kullanılan yerdir, HttpModule ise HTTP isteği için "tek yol"dur; bu nedenle bu HTTP isteği gerçek istek işleme merkezine (HttpHandler) iletilmeden önce HTTP isteği bilgisinin üzerine gerekli bilgileri ekleyebilir veya ele geçirilen HTTP isteği bilgisi üzerinde ek çalışmalar yapabilirsiniz. Ya da bazı durumlarda, bazı koşulları karşılayan HTTP isteklerini sonlandırabilirsiniz; bu istekler filtre olarak işlev görebilir.
Bir HTTP talebi, HttpModule konteynerinin teslimatı sırasında (ResolveRequestCache olayı) bir noktada HttpHandler konteynerine iletilir. Bu olaydan sonra, HttpModule konteyneri HttpHandler'ın bir giriş örneğini oluşturur, ancak HTTP isteğinin kontrolünü bırakmak yerine AcquireRequestState ve PreRequestHandlerExcute olaylarını ateşlemeye devam eder. PreRequestHandlerExcute olayından sonra, HttpModule penceresi gerçek HTTP isteği işlemesi için geçici olarak HttpHandler konteynerine kontrol verir.
HttpHandler konteyneri içinde, HTTP isteklerini işlemek için ProcessRequest yöntemi çalıştırılır. Konteyner HttpHandler tüm HTTP isteğini işledikten sonra, kontrolü HttpModule'e geri döndürür; HttpModule, işlenen HTTP isteği bilgi akışını katman katman aktarmaya devam eder ve bu talep istemciye geri dönene kadar.
Bir örnek
Proje yapısı
MyHttpModule kodu
Web.config'de özel bir HttpModule kaydet
Sayfaya göz atın Default.aspx
Peki, yaşam döngüsündeki bir dizi olayın uygulama sırası nedir?
Sonuçları inceleyin
Http isteğini sonlandırmak için HttpModule kullanın
sonuç
özet
Burada, uygulama sınıfındaki Init yönteminde yaşam döngüsündeki çeşitli olaylar kaydedilebilir ve olay içinde çeşitli mantıklar tanımlanabildiği için, asp.net yaşam döngüsündeki en önemli arayüz olan IHttpModule'ü tanıtıyoruz.
|
Önceki:Asp.Net IHttpHandler tanıtıldıÖnümüzdeki:C#, bu başlık çözümünü uygun öznitelikler veya yöntemlerle değiştirmelidir
|