2.ASP.NET Core MVC中间件

按照惯例,通过调用 Use 、MapRun 扩展方法,向请求处理管道添加中间件组件。

请求管道中的每个中间件组件负责调用管道中的下一个组件,或使管道短路。当中间件短路时,它被称为“终端(terminal)中间件”,因为它阻止中间件进一步处理请求。

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddRazorPages();
builder.Services.AddControllersWithViews();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Error");
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseAuthorization();

app.MapGet("/hi", () => "Hello!");

app.MapDefaultControllerRoute();
app.MapRazorPages();

app.Run();

1.中间件顺序

2.ASP.NET Core MVC中间件

2.Endpoint中间件

2.ASP.NET Core MVC中间件

3.内置中间件

MiddlewareDescriptionOrder
AuthenticationProvides authentication support.Before HttpContext.User is needed. Terminal for OAuth callbacks.
AuthorizationProvides authorization support.Immediately after the Authentication Middleware.
Cookie PolicyTracks consent from users for storing personal information and enforces minimum standards for cookie fields, such as secure and SameSite.Before middleware that issues cookies. Examples: Authentication, Session, MVC (TempData).
CORSConfigures Cross-Origin Resource Sharing.Before components that use CORS. UseCors currently must go before UseResponseCaching due to this bug.
DeveloperExceptionPageGenerates a page with error information that is intended for use only in the Development environment.Before components that generate errors. The project templates automatically register this middleware as the first middleware in the pipeline when the environment is Development.
DiagnosticsSeveral separate middlewares that provide a developer exception page, exception handling, status code pages, and the default web page for new apps.Before components that generate errors. Terminal for exceptions or serving the default web page for new apps.
Forwarded HeadersForwards proxied headers onto the current request.Before components that consume the updated fields. Examples: scheme, host, client IP, method.
Health CheckChecks the health of an ASP.NET Core app and its dependencies, such as checking database availability.Terminal if a request matches a health check endpoint.
Header PropagationPropagates HTTP headers from the incoming request to the outgoing HTTP Client requests.——————————
HTTP LoggingLogs HTTP Requests and Responses.At the beginning of the middleware pipeline.
HTTP Method OverrideAllows an incoming POST request to override the method.Before components that consume the updated method.
HTTPS RedirectionRedirect all HTTP requests to HTTPS.Before components that consume the URL.
HTTP Strict Transport Security (HSTS)Security enhancement middleware that adds a special response header.Before responses are sent and after components that modify requests. Examples: Forwarded Headers, URL Rewriting.
MVCProcesses requests with MVC/Razor Pages.Terminal if a request matches a route.
OWINInterop with OWIN-based apps, servers, and middleware.Terminal if the OWIN Middleware fully processes the request.
Response CachingProvides support for caching responses.Before components that require caching. UseCORS must come before UseResponseCaching.
Response CompressionProvides support for compressing responses.Before components that require compression.
Request LocalizationProvides localization support.Before localization sensitive components. Must appear after Routing Middleware when using RouteDataRequestCultureProvider.
Endpoint RoutingDefines and constrains request routes.Terminal for matching routes.
SPAHandles all requests from this point in the middleware chain by returning the default page for the Single Page Application (SPA)Late in the chain, so that other middleware for serving static files, MVC actions, etc., takes precedence.
SessionProvides support for managing user sessions.Before components that require Session.
Static FilesProvides support for serving static files and directory browsing.Terminal if a request matches a file.
URL RewriteProvides support for rewriting URLs and redirecting requests.Before components that consume the URL.
W3CLoggingGenerates server access logs in the W3C Extended Log File Format.At the beginning of the middleware pipeline.
WebSocketsEnables the WebSockets protocol.Before components that are required to accept WebSocket requests.

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/csharp/aspnetcoremvc/14604.html

(0)
上一篇 2022年5月1日 01:16
下一篇 2022年5月3日 21:54

相关推荐

  • 3.ASP.NET Core MVC配置

    1.配置提供程序 配置提供程序从配置源的键值对读取配置数据。 配置提供程序 配置源 Azure Key Vault 配置提供程序 Azure Key Vault Azure 应用配置提供程序 Azure 应用程序配置 命令行配置提供程序 命令行参数 无前缀环境变量配置提供程序 无前缀环境变量 (带前缀)环境变量配置提供…

  • 1.ASP.NET Core MVC依赖注入

    1.依赖注入步骤 步骤一:使用接口或基类将依赖关系实现抽象化。 步骤二:使用 builder.Services 提供的服务注册方法在内置的DI服务容器 IServiceProvider 中注册服务。 步骤三:将服务注入到使用它的类的构造函数中。 2.使用扩展方法注册服务组 2.1内置服务组 约定使用单个 Add{GRO…

  • 4.ASP.NET Core MVC终结点路由

    1. UseRouting和UseEndpoints方法 1.1作用 路由使用一对由 UseRouting 和 UseEndpoints 注册的中间件: UseRouting 向中间件管道添加路由匹配。此中间件会查看应用中定义的终结点集,并根据请求选择最佳的终…

发表回复

登录后才能评论