zoukankan      html  css  js  c++  java
  • aspnetcore的中间件

    Run会终止中间件继续传递

     1 app.Run(new RequestDelegate(async context =>
     2 {
     3         await Task.Run(() =>
     4         {
     5                 context.Response.WriteAsync("被Run截取到了");
     6          });
     7 }));
     8 
     9 app.Run(new RequestDelegate(async context =>
    10 {
    11         await context.Response.WriteAsync("被Run截取到了");
    12 }));

     Use 会继续传递

    app.Use(async (context, next) =>
    {
            context.Response.Headers.Add("ResponseAt", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff"));
            await next();
    });

    Map和MapWhen

    app.Map("/Test", configuration =>
                {
                    configuration.Run(async context =>
                    {
                        await context.Response.WriteAsync("Test被截取了");
                    });
                });
    
                app.MapWhen(
                    context => context.Request.Path.Value.Contains("Test", StringComparison.CurrentCultureIgnoreCase),
                    configuration => configuration.Run(async context =>
                    {
                        await context.Response.WriteAsync("带Test的被截取了");
                    }));

    使用UseMiddleware

    public class MyMiddleware
        {
            private readonly RequestDelegate _next;
    
            private readonly ILogger _logger;
    
            private readonly string _prefix;
    
            public MyMiddleware(RequestDelegate next, ILoggerFactory factory, string prefix)
            {
                _next = next;
                _logger = factory.CreateLogger<MyMiddleware>();
                _prefix = prefix;
            }
    
    
            public async Task Invoke(HttpContext context)
            {
                _logger.LogInformation("" + _prefix + "" + context.Request.Path.Value);
                context.Response.Headers.Add("ResponseAt", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff"));
                await _next(context);
            }
        }
    app.UseMiddleware<MyMiddleware>("博客");
  • 相关阅读:
    Linux命令之find exec rm-删除所有日志文件
    Linux常用系统信息查询命令
    shell后台运行脚本
    Linux 下后台运行程序
    Ubuntu配置和修改IP地址
    ssh免密码登录配置方法
    (转)linux如何将新硬盘挂载到home目录下
    Shell中if [ ] 中-a到-z的意思
    安防监控相关
    本地yum源的建立
  • 原文地址:https://www.cnblogs.com/diwu0510/p/10810630.html
Copyright © 2011-2022 走看看