.NET CORE中间件实现用户IP地址记录
电脑版发表于:2019/7/26 16:31
中间件与过滤器的区别
https://www.tnblog.net/aojiancc2/article/details/2537
创建中间件RequestIPMyMiddleware
public class RequestIPMyMiddleware
{
private readonly RequestDelegate _next;
private readonly ILogger _logger;
public RequestIPMyMiddleware(RequestDelegate next, ILoggerFactory logger)
{
_next = next;
_logger = logger.CreateLogger<RequestIPMyMiddleware>();
}
/// <summary>
/// 执行的方法
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
public async Task Invoke(HttpContext context)
{
_logger.LogInformation("自定义中间件被执行");
//执行超作
_logger.LogInformation("My Ip:" + context.Connection.RemoteIpAddress.ToString());
//执行下一个中间件
await _next.Invoke(context);
}
}
添加中间件的引用
运行效果:
使用扩展方法中转添加中间件
这样使用使用起来就更加方便了
public static class RequestIPMiddlewareExtands
{
public static IApplicationBuilder UseMyIp(this IApplicationBuilder app)
{
//链式编程
return app.UseMiddleware<RequestIPMyMiddleware>();
}
}
使用
