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.
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 } }
// Erweiterungsmethode zum Hinzufügen von Middleware zur HTTP-Anforderungspipeline.
public static class MyMiddlewareExtensions{ public static IApplicationBuilder UseMyMiddleware(this IApplicationBuilder builder){ return builder.UseMiddleware<MyMiddleware>(); } }
//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!"); }); }
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!