Rumah > pembangunan bahagian belakang > Tutorial C#.Net > Bagaimanakah perisian tengah C# ASP.NET Core berbeza daripada HttpModule?

Bagaimanakah perisian tengah C# ASP.NET Core berbeza daripada HttpModule?

PHPz
Lepaskan: 2023-08-28 10:21:10
ke hadapan
646 orang telah melayarinya

C# ASP.NET Core 中间件与 HttpModule 有何不同?

HttpModules dikonfigurasikan melalui web.config atau global.asax Pembangun tidak mempunyai kawalan ke atas perintah pelaksanaan.

Oleh kerana susunan modul terutamanya berdasarkan peristiwa kitaran hayat aplikasi. Susunan pelaksanaan permintaan dan respons tetap sama.

HttpModules membantu anda melampirkan kod khusus pada acara aplikasi anda. HttpModules terikat kepada System.web.

Middleware dikonfigurasikan dalam kod Startup.cs, bukan fail web.config (titik masuk Untuk aplikasi)

Tidak seperti HttpModule, anda mempunyai kawalan penuh ke atas perkara yang akan dilaksanakan dan susunan ia dilaksanakan. sebagai Ia dilaksanakan mengikut susunan ia ditambah.

Middleware bertindak balas dalam urutan terbalik permintaan.

Middleware adalah bebas daripada acara ini.

Middleware adalah bebas hos.

perisian tengah teras Asp.Net terbina dalam

Pengesahan Menyediakan sokongan pengesahan.

CORS Konfigurasikan perkongsian sumber merentas domain.

Laluan Tentukan dan hadkan penghalaan permintaan.

Sesi Menyediakan sokongan untuk menguruskan sesi pengguna.

Diagnostik Termasuk sokongan untuk halaman ralat dan maklumat masa jalan.

Contoh

public class MyMiddleware{
   private readonly RequestDelegate _next;
   private readonly ILogger _logger;
   public MyMiddleware(RequestDelegate next, ILoggerFactory logFactory){
      _next = next;
      _logger = logFactory.CreateLogger("MyMiddleware");
   }
   public async Task Invoke(HttpContext httpContext){
      _logger.LogInformation("MyMiddleware executing..");
      await _next(httpContext); // calling next middleware
   }
}
Salin selepas log masuk

// Kaedah sambungan untuk menambah perisian tengah pada saluran paip permintaan HTTP.

public static class MyMiddlewareExtensions{
   public static IApplicationBuilder UseMyMiddleware(this IApplicationBuilder
   builder){
      return builder.UseMiddleware<MyMiddleware>();
   }
}
Salin selepas log masuk

//Tambah perisian tengah tersuai dalam saluran permintaan dengan menggunakan kaedah sambungan sebagai Seperti yang ditunjukkan di bawah

public void Configure(IApplicationBuilder app, IHostingEnvironment env){
   app.UseMiddleware<MyMiddleware>()
   app.Run(async (context) =>{
      await context.Response.WriteAsync("Hello World!");
   });
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah perisian tengah C# ASP.NET Core berbeza daripada HttpModule?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan