Middleware In ASP.NET Core
2016-08-10 15:48
579 查看
中间件简介
ASP.NET Core 由很多中间件构成,实现了一个HTTP请求管道(pipeline)。Request的Response的管道可以看成一个Push Stack 和 Pop Stack。
在Startup.cs的Configure方法中配置中间件。
实现一个中间件
构造函数RequestDelegate参数;Invoke(HttpContext context)方法;
using Microsoft.AspNetCore.Http; using System.Threading.Tasks; using System.Diagnostics; using System.IO; namespace WebAppWithIndividualUserAccounts { public class ResponseTime { RequestDelegate _next; public ResponseTime(RequestDelegate next) { _next = next; } public async Task Invoke(HttpContext context) { var sw = new Stopwatch(); sw.Start(); await _next(context); var isHtml = context.Response.ContentType?.ToLower().Contains("text/html"); if (context.Response.StatusCode == 200 && isHtml.GetValueOrDefault()) { var body = context.Response.Body; using (var streamWriter = new StreamWriter(body)) { var txtHtml = $"<footer><div id='process'>Response Time {sw.ElapsedMilliseconds} milliseconds.</div></footer>"; streamWriter.Write(txtHtml); } } } } }
注册一个中间件
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { app.UseMiddleware<ResponseTime>(); //......
运行
即可看到效果相关文章推荐
- [转]Writing Custom Middleware in ASP.NET Core 1.0
- [译]Writing Custom Middleware in ASP.NET Core 1.0
- ASP.NET Core中间件(Middleware)实现WCF SOAP服务端解析
- User Secrets – Storing sensitive data in ASP.NET Core projects
- WebSocket in ASP.NET Core
- [ASP.NET Core] Middleware
- WebSocket in ASP.NET Core
- 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(四)-- Middleware
- ASP.NET Core 开发-中间件(Middleware)
- 在ASP.NET Core使用Middleware模拟Custom Error Page功能
- ASP.NET Core应用的错误处理[2]:DeveloperExceptionPageMiddleware中间件如何呈现“开发者异常页面”
- [转]How do you create a custom AuthorizeAttribute in ASP.NET Core?
- [ASP.NET Core] Static File Middleware
- Asp.Net Core WebApi学习笔记(四)-- Middleware
- ASP.NET Core应用针对静态文件请求的处理[3]: StaticFileMiddleware中间件如何处理针对文件请求
- Dependency Injection in ASP.NET Core
- ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件)
- ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件)
- [ASP.NET Core] Static File Middleware
- ASP.NET Core应用针对静态文件请求的处理[5]: DefaultFilesMiddleware中间件如何显示默认页面