一. 简介
1.中间件是一种装配到应用管道以处理请求和响应的组件,每个组件可以选择是否把请求传递到管道中的下一个组件、可在管道中的下一个组件的前后执行工作.请求管道中的每一个组件负责调用管道中的下一个组件(或者使管道短路).
经典的管道请求图:
2.当中间件短路的时候,它被称为“终端中间件”,因为它阻止中间件进一步处理请求。
3.顺序:向Startup.Configure方法中添加常用中间件组件,需要按照下面的顺序,从而保证安全性、性能、功能。
异常/错误处理→ HTTP 严格传输安全协议→HTTPS 重定向→静态文件服务器→Cookie 策略实施→身份验证→会话→MVC。
1 public void Configure(IApplicationBuilder app) 2 { 3 if (env.IsDevelopment()) 4 { 5 app.UseDeveloperExceptionPage(); 6 app.UseDatabaseErrorPage(); 7 } 8 else 9 { 10 app.UseExceptionHandler("/Error"); 11 app.UseHsts(); 12 } 13 14 // Use HTTPS Redirection Middleware to redirect HTTP requests to HTTPS. 15 app.UseHttpsRedirection(); 16 17 // Return static files and end the pipeline. 18 app.UseStaticFiles(); 19 20 // Use Cookie Policy Middleware to conform to EU General Data 21 // Protection Regulation (GDPR) regulations. 22 app.UseCookiePolicy(); 23 24 // Authenticate before the user accesses secure resources. 25 app.UseAuthentication(); 26 27 // If the app uses session state, call Session Middleware after Cookie 28 // Policy Middleware and before MVC Middleware. 29 app.UseSession(); 30 31 //