
什么是中间件?
凡是app点出来的都是中间件,如下图所示
今天就来制作一下中间件
1,创建一个.netcore的web空项目
2,创建一个RequesIPMiddleware类
- public class RequesIPMiddleware
- {
- private readonly RequestDelegate _next;
-
- private readonly ILogger _logger;
- public RequesIPMiddleware(RequestDelegate next ,ILoggerFactory logger)
- {
- _next = next;
- _logger = logger.CreateLogger<RequesIPMiddleware>();
- }
- /// <summary>
- /// 执行的方法
- /// </summary>
- /// <param name="context"></param>
- /// <returns></returns>
- public async Task Invoke(HttpContext context)
- {
- //执行超作
- _logger.LogInformation("My Ip:" + context.Connection.RemoteIpAddress.ToString());
- //执行下一个中间件
- await _next.Invoke(context);
- }
-
- }
3,创建一个RequestPExtensions.cs类
- public static class RequestPExtensions
- {
- public static IApplicationBuilder UseRequestIP(this IApplicationBuilder builder)
- {
- return builder.UseMiddleware<RequesIPMiddleware>();
- }
- }
这样一个中间件就算完成了!
4,调用中间件 UseRequestIP
- public void Configure(IApplicationBuilder app, IHostingEnvironment env,ILoggerFactory iLoggerFactory)
- {
- iLoggerFactory.AddConsole(minLevel: LogLevel.Information);
- app.UseRequestIP();
- if (env.IsDevelopment())
- {
- app.UseDeveloperExceptionPage();
- }
-
- app.Run(async (context) =>
- {
- await context.Response.WriteAsync("Hello World!");
- });
- }
运行(由于我这里是本地运行so这里ip就成这样了):
感谢各位老铁的观看!
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
评价
排名
2
文章
634
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 :
好是好,这个对效率影响大不大哇,效率高不高
一个bug让程序员走上法庭 索赔金额达400亿日元
剑轩 : 有点可怕
ASP.NET Core 服务注册生命周期
剑轩 :
http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术