打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ASP.NET Core 开发:中间件


来源:linezero

链接:http://www.cnblogs.com/linezero/p/5529767.html


ASP.NET Core开发,开发并使用中间件(Middleware)。中间件是被组装成一个应用程序管道来处理请求和响应的软件组件。每个组件选择是否传递给管道中的下一个组件的请求,并能之前和下一组分在管道中调用之后执行特定操作。


具体如图:



开发中间件(Middleware)


今天我们来实现一个记录ip 的中间件。


  1. 新建一个asp.net core项目,选择空的模板。




然后为项目添加一个 Microsoft.Extensions.Logging.Console


NuGet 命令行 ,请使用官方源。


Install-Package Microsoft.Extensions.Logging.Console -Pre


2.新建一个类: RequestIPMiddleware.cs


 public class RequestIPMiddleware

    {

        private readonly RequestDelegate _next;

        private readonly ILogger _logger;

 

        public RequestIPMiddleware(RequestDelegate next, ILoggerFactory loggerFactory)

        {

            _next = next;

            _logger = loggerFactory.CreateLogger();

        }

 

        public async Task Invoke(HttpContext context)

        {            

            _logger.LogInformation('User IP: ' + context.Connection.RemoteIpAddress.ToString());

            await _next.Invoke(context);

        }

    }


3.再新建一个:RequestIPExtensions.cs


 public static class RequestIPExtensions

    {

        public static IApplicationBuilder UseRequestIP(this IApplicationBuilder builder)

        {

            return builder.UseMiddleware();

        }

    }


这样我们就编写好了一个中间件。


使用中间件(Middleware)


1.使用


在 Startup.cs 添加 app.UseRequestIP()


public void Configure(IApplicationBuilder app, ILoggerFactory loggerfactory)

        {

            loggerfactory.AddConsole(minLevel: LogLevel.Information);

            app.UseRequestIP();//使用中间件

            app.Run(async (context) =>

            {

                await context.Response.WriteAsync('Hello World!');

            });

        }


然后运行程序,我选择使用Kestrel 。


访问:http://localhost:5000/



成功运行。


这里我们还可以对这个中间件进行进一步改进,增加更多的功能,如限制访问等。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ASP.NET Core 中间件详解及项目实战
ASP.NET CORE 管道模型及中间件使用解读
ASP.NET Core笔记(5) - 中间件
13.在ASP.NET Core中配置中间件组件
dotNET Core 3.X 请求处理管道和中间件的理解
ASP.NET Core 运行原理剖析
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服