前面一篇文章简单的介绍了中间件的应用

下面编写一个自定义的中间件类库,并加入中间件参数以及引入日志记录中间件的异常

下面来看下中间件的构造,参数可以自定义 这里我定义了一个参数类

编写中间件需要引入

Owin

Microsoft.Owin;

中间件类需要继承类:OwinMiddleware

 /// <summary>
    /// 自定义的中间件
    /// </summary>
    public class CustomMiddleware : OwinMiddleware
    {
        CustomMiddlewareParameters _parameter;
        public CustomMiddleware(OwinMiddleware next, CustomMiddlewareParameters parameter) : base(next)
        {
            _parameter = parameter;
        }
        public override Task Invoke(IOwinContext c)
        {
            if (Next != null)
            {
                try
                {
                    var cookie = c.Request.Cookies.ToList();
                    string allcookie = string.Empty;
                    string allenvi = string.Empty;
                    foreach (var cok in cookie)
                    {
                        allcookie += cok.Key + "---------------" + cok.Value + "<br />";
                        c.Environment.Add(cok.Key, cok.Value);
                    }

                    foreach (var envi in c.Environment)
                    {
                        allenvi += envi.Key + "---------------" + envi.Value + "<br />";
                    }

                    var msg = Encoding.UTF8.GetBytes(allcookie + "<br /><br /><br /><br /><br /><br />" + allenvi);
                    c.Response.ContentType = "text/html; charset=utf-8";
                    c.Response.Write(msg, 0, msg.Length);



                    //处理操作
                    return Next.Invoke(c);
                }
                catch (Exception ex)
                {
                    _parameter.logs.Error(ex.Message);
                }
            }
            return Task.FromResult<int>(0);
        }

    }
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-29
  • 2021-05-30
  • 2021-11-10
  • 2021-05-28
猜你喜欢
  • 2021-10-29
  • 2021-12-19
  • 2022-12-23
  • 2022-12-23
  • 2021-11-27
  • 2021-11-27
  • 2021-04-30
相关资源
相似解决方案