分类:
.NET Core
今天我们记录一下中间件 ,看到下面那些代码, 我们就知道了:
// 处理静态文件中间件 app.UseStaticFiles(); app.UseCookiePolicy(); // 启动ids4中间件 app.UseIdentityServer(); // 使用自己的中间件 app.UseMyIp(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); });
我们弄一个类,写自己的中间件如:
public class MyIPMiddleware { private readonly RequestDelegate _next; // 写日志 private readonly ILogger _logger; public MyIPMiddleware(RequestDelegate next, ILoggerFactory logger) { _next = next; _logger = logger.CreateLogger<MyIPMiddleware>(); } /// <summary> /// 执行的方法 /// </summary> /// <param name="context"></param> /// <returns></returns> public async Task Invoke(HttpContext context) { _logger.LogWarning("执行自己的中间件,获取IP地址....."); //执行超作 _logger.LogError("My Ip:" + context.Connection.RemoteIpAddress.ToString()); //执行下一个中间件 await _next.Invoke(context); } }
我们可以为了看着厉害一点,我们还可以在写一个类来封装它:
public static IApplicationBuilder UseMyIp(this IApplicationBuilder app) { //链式编程 return app.UseMiddleware<MyIPMiddleware>(); }
这样我们自己写的中间件和官方的一样了....
评价
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术