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.
|