分类:
.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-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256
50010702506256
欢迎加群交流技术