Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 51405|Jawab: 5

[ASP.NET] asp.net antarmuka IHttpModule dijelaskan secara rinci

[Salin tautan]
Diposting pada 13/03/2018 21.46.06 | | | |
Tertulis di depan

Mengenai konten IHttpModule yang relevan, saya juga ditanya selama wawancara, dan saya samar-samar merasa bahwa antarmuka ini memiliki metode Init, yang dapat mendaftarkan serangkaian peristiwa dengan metode Init di kelas implementasi. Di rumah akhir pekan ini, sebenarnya tidak ada yang bisa dilakukan, bahkan jika itu untuk memeriksa dan mengisi kekosongan dalam pengetahuan ini.

IHttpModule berfungsi

Teman-teman yang akrab dengan siklus hidup asp.net harus tahu bahwa eksekusi HttpModule dieksekusi sebelum HttpHandler, dan setelah mengeksekusi serangkaian peristiwa HttpModule, kemudian mengeksekusi HttpHandler, dan kemudian mengeksekusi beberapa peristiwa HttpModule. Untuk detailnya, silakan lihat diagram siklus hidup berikut.



HttpHandler adalah tempat untuk menangani permintaan http, HttpModule adalah "satu-satunya cara" untuk permintaan HTTP, sehingga Anda dapat menambahkan beberapa informasi yang diperlukan di atas informasi permintaan HTTP sebelum permintaan HTTP ini diteruskan ke pusat pemrosesan permintaan nyata (HttpHandler), atau melakukan beberapa pekerjaan tambahan pada informasi permintaan HTTP yang disadap. Atau dalam beberapa kasus, cukup hentikan permintaan HTTP yang memenuhi beberapa kondisi, yang dapat bertindak sebagai filter.

Permintaan HTTP akan diteruskan ke kontainer HttpHandler di beberapa titik (peristiwa ResolveRequestCache) selama pengiriman kontainer HttpModule. Setelah peristiwa ini, kontainer HttpModule membuat instans masuk HttpHandler, tetapi alih-alih melepaskan kontrol atas permintaan HTTP, kontainer ini terus memicu peristiwa AcquireRequestState dan PreRequestHandlerExcutate. Setelah peristiwa PreRequestHandlerExcutate, jendela HttpModule untuk sementara memberikan kontrol ke kontainer HttpHandler untuk pemrosesan permintaan HTTP nyata.

Di dalam kontainer HttpHandler, metode ProcessRequest dijalankan untuk menangani permintaan HTTP. Setelah kontainer HttpHandler memproses seluruh permintaan HTTP, ia mengembalikan kontrol ke HttpModule, yang terus meneruskan aliran informasi permintaan HTTP yang diproses lapis demi lapis hingga dikembalikan ke klien.

Sebuah instance

Struktur proyek



Kode MyHttpModule

Mendaftarkan HttpModule kustom di web.config

Jelajahi halaman Default.aspx



Jadi bagaimana urutan eksekusi serangkaian peristiwa dalam siklus hidup?


Jelajahi hasilnya



Gunakan HttpModule untuk menghentikan permintaan Http


hasil



ringkasan

Di sini kami memperkenalkan antarmuka terpenting dalam siklus hidup asp.net, IHttpModule, yang dapat digambarkan sebagai antarmuka peristiwa, karena dalam metode Init di kelas implementasi, berbagai peristiwa dalam siklus hidup dapat didaftarkan, dan berbagai logika dapat didefinisikan dalam peristiwa tersebut.





Mantan:Asp.Net IHttpHandler diperkenalkan
Depan:C# harus memodifikasi solusi header ini dengan atribut atau metode yang sesuai
 Tuan tanah| Diposting pada 13/03/2018 21.46.47 |
. NETFramework 4.5 menyediakan 25 peristiwa standar.


 Tuan tanah| Diposting pada 13/03/2018 21.47.03 |
. NETFramework 4.0, yang menyediakan 19 peristiwa standar.

1. BeginRequest: Peristiwa pertama asp.net untuk mulai memproses permintaan, yang menunjukkan dimulainya pemrosesan.

2. AutentikasiPermintaan: Permintaan autentikasi, umumnya digunakan untuk mendapatkan informasi pengguna permintaan.

3. PostAuthenticateRequest: Informasi pengguna yang telah diminta.

4. AuthorizeRequest: Otorisasi, umumnya digunakan untuk memeriksa apakah permintaan pengguna telah diberikan izin.

5. PostAuthorizeRequest: Permintaan pengguna telah diotorisasi.

6. ResolveRequestCache: Dapatkan hasil pemrosesan dari cache pemrosesan sebelumnya, jika telah di-cache sebelumnya, maka tidak perlu memproses permintaan, dan langsung mengembalikan hasil yang di-cache.

7. PostResolveRequestCache: Cache telah diproses.

8. PostMapRequestHandler: Objek prosesor yang diminta telah dibuat berdasarkan permintaan pengguna.

9. AcquireRequestState: Dapatkan status permintaan, yang umumnya digunakan untuk sesi

10. PostAcquireRequestState: Sesi telah diperoleh

11. PreRequestHandlerExecute: Siapkan penangan eksekusi.

12. PostRequestHandlerExecute: Handler telah dieksekusi

13. ReleaseRequestState: Status permintaan rilis.

14. PostReleaseRequestState: Status permintaan telah dirilis.

15. UpdateRequestCache: Perbarui cache.

16. PostUpdateRequestCache: Cache telah diperbarui.

17. LogRequest: Operasi log yang diminta

18. PostLogRequest: Operasi log permintaan telah selesai.

19. EndRequest: Permintaan diproses.
Diposting pada 22/04/2019 09.48.33 |
Tandai
Diposting pada 30/09/2021 19.19.09 |
Baru-baru ini belajar. Baca dengan seksama
 Tuan tanah| Diposting pada 14/07/2023 20.26.36 |
ASP.NET MVC menghitung permintaan berdasarkan modul IHttpModule
https://www.itsvse.com/thread-10627-1-1.html
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com