Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 51405|Yanıt: 5

[ASP.NET] asp.net IHttpModule arayüzü ayrıntılı olarak açıklanmıştır

[Bağlantıyı kopyala]
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
 Ev sahibi| Yayınlandı 13.03.2018 21:46:47 |
. NETFramework 4.5 25 standart olay sunar.


 Ev sahibi| Yayınlandı 13.03.2018 21:47:03 |
. NETFramework 4.0, 19 standart etkinlik sağlar.

1. BeginRequest: Talebi işlemeye başlayan asp.net ilk olay, işlemenin başlangıcını gösterir.

2. AuthenticateRequest: Kimlik doğrulama talebi, genellikle talebin kullanıcı bilgilerini elde etmek için kullanılır.

3. PostAuthenticateRequest: İstenmiş kullanıcı bilgileri.

4. AuthorizeRequest: Yetkilendirme, genellikle kullanıcının talebinin izin verilip verilmediğini kontrol etmek için kullanılır.

5. PostauthorizeRequest: Kullanıcı talebi yetkilendirilmiştir.

6. ResolveRequestCache: Önceki işlem önbelleğinin işlem sonuçlarını alın, eğer önbellek daha önce önbelleğe alındıysa, isteği işlemeye gerek kalmaz ve doğrudan önbelleklenen sonuçları döndürür.

7. PostResolveRequestCache: Önbellek işlendi.

8. PostMapRequestHandler: İstenen işlemci nesnesi kullanıcının isteği üzerine oluşturulmuştur.

9. AcquireRequestState: Genellikle oturum için kullanılan talebin durumunu elde edin

10. PostAcquireRequestState: Oturum alındı

11. PreRequestHandlerExecute: Uygulama yöneticisini hazırlayın.

12. PostRequestHandlerExecute: Handler yürütüldü

13. ReleaseRequestState: Serbest bırakma talebinin durumu.

14. PostReleaseRequestState: Talebin durumu açıklandı.

15. UpdateRequestCache: Önbelleği güncelledin.

16. PostUpdateRequestCache: Önbellek güncellendi.

17. LogRequest: İstenen log işlemi

18. PostLogRequest: İsteğin günlük işlemi tamamlandı.

19. EndRequest: Talep işlenir.
Yayınlandı 22.04.2019 09:48:33 |
Yer imlerine bırak
Yayınlandı 30.09.2021 19:19:09 |
Son zamanlarda ders çalışıyorum. Dikkatlice okuyun
 Ev sahibi| Yayınlandı 14.07.2023 20:26:36 |
ASP.NET MVC, IHttpModule modüllerine dayalı talepleri sayar
https://www.itsvse.com/thread-10627-1-1.html
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com