Baru-baru ini, saya perlu membuat antarmuka yang merespons permintaan tertentu. Itu hanya diproses secara internal dan tidak ada UI. Dalam hal ini, tentu saja, IHttpHandler digunakan untuk mengimplementasikan IHttpHandler, yang dapat mengurangi waktu memuat kontrol HTML. Saya awalnya berpikir begitu. Mengenai dua metode yang didefinisikan di IHttpHandler, ProcessRequest(HttpContext ctx) dan IsRunable(), saya melihat ada parameter input HttpContext di ProcessRequest(HttpContext ctx). objek server, tetapi memerlukan referensi ke HttpContext di depan. Namun masalah muncul. Sesi perlu ditulis dalam header pemrosesan respons HTTP khusus ini. Permintaan dan Respons Lainnya dapat direferensikan dengan menggunakan HttpContext, tetapi Sesi tidak berfungsi benar-benar seratus Ini membingungkan. HTTPCONTEXT mencantumkan objek server yang dapat digunakan, tetapi SESSION tidak dapat digunakan! Ini sangat sulit, jadi saya harus memasukkan konten HTTPHANDLER yang disesuaikan ke dalam WEBFORM biasa. Tepat setelah menyelesaikannya, saya tidak sengaja menemukan metode penggunaan SESSION di HTTPHANDLER khusus!
1. Pertama-tama referensikan namespace System.Web.SessionState.
2. Jika Anda ingin membaca isi Sesi di HttpHandler, Anda juga harus mengimplementasikan antarmuka IReadOnlySessionState di kelas yang mengimplementasikan IHttpHandler.
3. Jika Anda ingin membaca dan menulis isi Sesi di HttpHandler, Anda juga harus mengimplementasikan IRequiresSessionState di kelas yang mengimplementasikan IHttpHandler,
sehingga Sesi dapat digunakan secara normal di HttpHandler kustom.