Heim > Backend-Entwicklung > C#.Net-Tutorial > Wie unterscheidet sich die C# ASP.NET Core-Middleware von HttpModule?

Wie unterscheidet sich die C# ASP.NET Core-Middleware von HttpModule?

PHPz
Freigeben: 2023-08-28 10:21:10
nach vorne
649 Leute haben es durchsucht

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

HttpModule, konfiguriert über web.config oder global.asax Der Entwickler hat keine Kontrolle über die Reihenfolge der Ausführung.

Denn die Reihenfolge der Module basiert hauptsächlich auf Ereignissen im Anwendungslebenszyklus. Die Ausführungsreihenfolge von Anfragen und Antworten bleibt gleich.

HttpModules hilft Ihnen, Code speziell für Ihre Anwendungsereignisse anzuhängen. HttpModules sind an System.web gebunden.

Middleware wird im Startup.cs-Code konfiguriert, nicht in der web.config-Datei (Einstiegspunkt). Für Anwendungen)

Im Gegensatz zu HttpModule haben Sie die vollständige Kontrolle darüber, was ausgeführt wird und in welcher Reihenfolge es ausgeführt wird. als Sie werden in der Reihenfolge ausgeführt, in der sie hinzugefügt werden.

Middleware antwortet in umgekehrter Reihenfolge der Anfragen.

Middleware ist unabhängig von diesen Ereignissen.

Middleware ist hostunabhängig.

Integrierte Asp.Net-Kern-Middleware

Authentifizierung Bietet Authentifizierungsunterstützung.

CORS Konfigurieren Sie die domänenübergreifende Ressourcenfreigabe.

Routen Anforderungsrouting definieren und einschränken.

Session Bietet Unterstützung für die Verwaltung von Benutzersitzungen.

Diagnose Beinhaltet Unterstützung für Fehlerseiten und Laufzeitinformationen.

Beispiel

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
   }
}
Nach dem Login kopieren

// Erweiterungsmethode zum Hinzufügen von Middleware zur HTTP-Anforderungspipeline.

public static class MyMiddlewareExtensions{
   public static IApplicationBuilder UseMyMiddleware(this IApplicationBuilder
   builder){
      return builder.UseMiddleware<MyMiddleware>();
   }
}
Nach dem Login kopieren

//Fügen Sie benutzerdefinierte Middleware zur Anforderungspipeline hinzu, indem Sie die Erweiterungsmethode as verwenden Wie unten gezeigt

public void Configure(IApplicationBuilder app, IHostingEnvironment env){
   app.UseMiddleware<MyMiddleware>()
   app.Run(async (context) =>{
      await context.Response.WriteAsync("Hello World!");
   });
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie unterscheidet sich die C# ASP.NET Core-Middleware von HttpModule?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage