关键代码

  • 使用中间件获取访问信息

    • 1
      app.UseMiddleware<VisitMiddleware>();//启用中间件
    • 1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      public class VisitMiddleware
      {
      RequestDelegate _request;

      public VisitMiddleware(RequestDelegate request)
      {
      _request = request;
      }

      public Task Invoke(HttpContext context)
      {
      //context对象包含访问者的所有信息,包括来源ip,使用的客户端等
      }

      }
  • UseExceptionHandler的使用与全局异常的捕捉

    • 1
      2
      //启用UseExceptionHandler中间件
      app.UseExceptionHandler(builder => builder.Run(async context => await ErrorEvent(context)));
    • 1
      2
      3
      4
      5
      6
      7
      public Task ErrorEvent(HttpContext context)
      {
      context.Response.ContentType = "text/html;charset=utf-8";
      var exception = context.Features.Get<IExceptionHandlerFeature>();
      // error对象包含抛出的异常信息
      var error = exception?.Error;
      }