Buat middleware tersuai di ASP.NET Core, yang boleh dilaksanakan dengan menulis kelas dan mendaftar. 1. Buat kelas yang mengandungi kaedah InvokeAsync, mengendalikan httpcontext dan requestDelegate seterusnya; 2. Daftar dengan USEMIddleWare dalam Program.CS. Middleware sesuai untuk operasi umum seperti pembalakan, pemantauan prestasi, pengendalian pengecualian, dan lain -lain. Tidak seperti penapis MVC, ia bertindak pada keseluruhan aplikasi dan tidak bergantung pada pengawal. Penggunaan rasional middleware boleh meningkatkan fleksibiliti struktur, tetapi harus mengelakkan mempengaruhi prestasi.
Mewujudkan middleware tersuai di ASP.NET Core adalah cara yang fleksibel untuk memperluaskan proses pemprosesan permintaan. Ia membolehkan anda memasukkan logik tersuai, seperti pembalakan, pemeriksaan pra-pengesahan, pemantauan prestasi, dan lain-lain sebelum permintaan HTTP memasuki pengawal atau sebelum respons kembali kepada pelanggan.

Apa itu middleware?
Middleware adalah pautan dalam saluran paip teras ASP.NET yang mengendalikan setiap permintaan dan tindak balas. Anda boleh memahaminya sebagai "penapis" di mana pelbagai middlewares disambungkan dalam urutan untuk membentuk saluran paip. Setiap middleware boleh memilih sama ada untuk lulus permintaan ke nod seterusnya, atau terus menamatkan proses dan mengembalikan respons.

Middlewares terbina dalam termasuk UseRouting()
, UseAuthentication()
, dan UseAuthorization()
. Apa yang kita perlukan ialah: Cara menulis middleware anda sendiri .
Cara menulis middleware tersuai
Biasanya terdapat dua cara untuk membuat middleware tersuai:

- Delegasi middleware
- Melaksanakan kelas middleware (middleware berasaskan kelas)
Adalah disyorkan untuk menggunakan kelas, yang mempunyai struktur yang lebih jelas dan juga mudah untuk ujian dan penyelenggaraan.
Langkah -langkahnya adalah seperti berikut:
- Buat kelas yang mengandungi kaedah
Invoke
atauInvokeAsync
. - Kaedah ini menerima
HttpContext
dan parameterRequestDelegate next
. - Daftar middleware dalam
Startup.cs
atauProgram.cs
.
Kod sampel adalah seperti berikut:
Mycustommiddleware Kelas Awam { swasta requestdelegate _next; myCustommidDleWare awam (RequestDelegate Seterusnya) { _next = Seterusnya; } Tugas Async Awam InvokeAsync (konteks httpcontext) { // Tambahkan logik anda di sini, sebagai contoh: Console.WriteLine ("Sebelum Permintaan Dikendalikan"); // Teruskan melaksanakan middleware berikutnya menanti _next (konteks); Console.WriteLine ("Selepas respons dihantar"); } }
Kemudian tambahkan dalam Program.cs
:
app.usemiddleWare <ycustommiddleware> ();
Perhatikan bahawa perintah pendaftaran middleware akan menjejaskan perintah pelaksanaan, jadi ia harus diletakkan di tempat yang betul.
Senario aplikasi biasa
Middleware sangat sesuai untuk beberapa operasi silang biasa, dan berikut adalah beberapa senario biasa:
- Pembalakan : Rekod laluan, masa, alamat IP dan maklumat lain setiap permintaan.
- Pemantauan Prestasi : Mengira masa pemprosesan setiap permintaan dan digunakan untuk menganalisis kesesakan sistem.
- Pengendalian Pengecualian Global : Tangkap pengecualian yang tidak diawasi dan mesej ralat kembali seragam.
- Permintaan memintas : Tolak permintaan berdasarkan syarat tertentu (seperti IP Blacklist).
- Tetapkan tajuk tindak balas tersuai : Sebagai contoh, tambah
X-Powered-By
atau pengenal lain.
Sebagai contoh, jika anda ingin merakam masa yang dihabiskan untuk setiap permintaan, anda boleh melakukannya seperti ini:
Tugas Async Awam InvokeAsync (konteks httpcontext) { var standWatch = New StopWatch (); randalWatch.Start (); menunggu _Next (konteks); randalWatch.stop (); Console.writeline ($ "permintaan {context.request.path} mengambil {standwatch.elapsedMilliseconds} ms"); }
Pendekatan ini berguna untuk debugging dan pengoptimuman prestasi.
Perbezaan antara middleware dan penapis
Kadang -kadang penapis middleware dan MVC keliru. Mereka semua melakukan perkara yang sama, tetapi mempunyai skop aplikasi yang berbeza:
- Middleware bertindak ke atas keseluruhan aplikasi, berfungsi pada semua permintaan, dan tidak bergantung pada rangka kerja MVC.
- Penapis hanya berkesan untuk pengawal MVC dan sesuai untuk beberapa operasi peringkat tindakan, seperti pengesahan parameter dan pemformatan hasil.
Jika anda ingin memproses permintaan bukan pengawal (seperti fail statik) juga, anda mesti menggunakan middleware.
Di samping itu, middleware dapat mengawal arah keseluruhan saluran paip permintaan dan bahkan dapat menamatkan respons sebelum pengawal dilaksanakan.
Pada dasarnya itu sahaja. Menulis middleware tidak rumit, tetapi berhati -hati untuk tidak terlalu banyak menggunakannya untuk mengelakkan mempengaruhi prestasi. Penggunaan rasional middleware boleh menjadikan struktur aplikasi anda lebih jelas dan lebih fleksibel.
Atas ialah kandungan terperinci Membuat middleware tersuai di ASP.NET Core C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Laravel ialah rangka kerja aplikasi web PHP yang popular yang menyediakan banyak cara cepat dan mudah untuk membina aplikasi web yang cekap, selamat dan berskala. Apabila membangunkan aplikasi Laravel, kita sering perlu mempertimbangkan isu pemulihan data, iaitu, cara memulihkan data dan memastikan operasi normal aplikasi sekiranya berlaku kehilangan atau kerosakan data. Dalam artikel ini, kami akan memperkenalkan cara menggunakan perisian tengah Laravel untuk melaksanakan fungsi pemulihan data dan menyediakan contoh kod khusus. 1. Apa itu Lara?

Cara menggunakan perisian tengah untuk mengendalikan pengesahan borang dalam Laravel, contoh kod khusus diperlukan Pengenalan: Pengesahan borang ialah tugas yang sangat biasa dalam Laravel. Untuk memastikan kesahihan dan keselamatan data yang dimasukkan oleh pengguna, kami biasanya mengesahkan data yang diserahkan dalam borang. Laravel menyediakan fungsi pengesahan borang yang mudah dan juga menyokong penggunaan perisian tengah untuk mengendalikan pengesahan borang. Artikel ini akan memperkenalkan secara terperinci cara menggunakan perisian tengah untuk mengendalikan pengesahan borang dalam Laravel dan memberikan contoh kod khusus.

Prinsip perisian tengah tomcat dilaksanakan berdasarkan spesifikasi Java Servlet dan Java EE. Sebagai bekas Servlet, Tomcat bertanggungjawab untuk memproses permintaan dan respons HTTP dan menyediakan persekitaran berjalan untuk aplikasi Web. Prinsip-prinsip perantara Tomcat terutamanya melibatkan: 1. Model kontena 2. Mekanisme pemprosesan Servlet 5. Pengurusan konfigurasi 7. Penyambung dan pengimbangan; teknologi; 9. Mod terbenam, dsb.

Cara menggunakan middleware untuk penukaran respons dalam Laravel Middleware ialah salah satu ciri yang sangat berkuasa dan praktikal dalam rangka kerja Laravel. Ia membolehkan kami memproses permintaan dan respons sebelum permintaan memasuki pengawal atau sebelum respons dihantar kepada klien. Dalam artikel ini, saya akan menunjukkan cara menggunakan perisian tengah untuk transformasi respons dalam Laravel. Sebelum memulakan, pastikan anda memasang Laravel dan projek baharu dibuat. Sekarang kita akan mengikuti langkah berikut: Cipta perisian tengah baru Terbuka

Cara menggunakan perisian tengah untuk pecutan data dalam Laravel Pengenalan: Apabila membangunkan aplikasi web menggunakan rangka kerja Laravel, pecutan data adalah kunci untuk meningkatkan prestasi aplikasi. Middleware ialah ciri penting yang disediakan oleh Laravel yang mengendalikan permintaan sebelum ia mencapai pengawal atau sebelum respons dikembalikan. Artikel ini akan menumpukan pada cara menggunakan perisian tengah untuk mencapai pecutan data dalam Laravel dan memberikan contoh kod khusus. 1. Apakah middleware itu adalah mekanisme dalam rangka kerja Laravel

Cara menyediakan Perkongsian Sumber Silang Asal (CORS) menggunakan perisian tengah dalam rangka kerja Slim Perkongsian Sumber Silang Asal (CORS) ialah mekanisme yang membolehkan pelayan menetapkan beberapa maklumat tambahan dalam pengepala respons HTTP untuk memberitahu penyemak imbas sama ada Benarkan silang -permintaan asal. Dalam sesetengah projek dengan pemisahan bahagian hadapan dan bahagian belakang, mekanisme CORS boleh digunakan untuk merealisasikan permintaan silang domain bahagian hadapan untuk antara muka bahagian belakang. Apabila menggunakan rangka kerja Slim untuk membangunkan REST API, kita boleh menggunakan middleware (Middleware)

Cara menggunakan perisian tengah untuk penyepaduan pembayaran WeChat dalam Laravel Pengenalan: Pembayaran WeChat ialah kaedah pembayaran yang sangat biasa dan mudah Untuk kebanyakan projek yang memerlukan perkhidmatan pembayaran dalam talian, menyepadukan pembayaran WeChat merupakan langkah penting. Dalam rangka kerja Laravel, penyepaduan pembayaran WeChat boleh dicapai dengan menggunakan perisian tengah untuk mengurus proses permintaan dan memproses logik pembayaran dengan lebih baik. Artikel ini akan memperkenalkan cara menggunakan perisian tengah untuk penyepaduan pembayaran WeChat dalam Laravel dan memberikan contoh kod khusus. 1. Persediaan pada permulaan

Cara menggunakan perisian tengah untuk penjadualan tugas berjadual dalam Laravel Pengenalan: Laravel ialah rangka kerja sumber terbuka PHP yang popular yang menyediakan alatan yang mudah dan berkuasa untuk membangunkan aplikasi web. Salah satu ciri penting ialah penjadualan tugas bermasa, yang membolehkan pembangun menjalankan tugas tertentu pada selang waktu tertentu. Dalam artikel ini, kami akan memperkenalkan cara menggunakan perisian tengah untuk melaksanakan penjadualan tugas berjadual Laravel dan menyediakan contoh kod khusus. Persediaan Persekitaran Sebelum bermula, kita perlu pastikan
