在每个 POST/GET 请求之前调用方法/执行操作 .NET Core

Int*_*321 5 c# asp.net post middleware asp.net-core

我想要实现的目标- 我的应用程序只是 ASP .Net Core 应用程序。它不是 Web API。我想在从我的应用程序到外部源的每个发布/获取请求之前执行方法,例如:我正在发送一个发布请求,以检查某些网站 API 的 SSL 到期日期并返回一个响应。根据回复,我是否正在发送另一个请求。我不想在每个请求之前放置调用方法语句,我想在全局范围内进行。

我试图基于http://www.sulhome.com/blog/10/log-asp-net-core-request-and-response-using-middleware实现这一点

当它发生时,这个中间件仅适用于内部请求(应用程序内部的路由请求)(我让它工作)。

有没有可能对所有请求都这样做?

提前致谢

mie*_*ooy 5

.NET Core 允许创建自定义中间件以进入 MV 管道。下面是一个例子:

public class MyMiddleware
    {
        private readonly RequestDelegate _next;


        public MyMiddleware(RequestDelegate next)
        {
            _next = next;
        }

        public async Task Invoke(HttpContext context)
        {
            //do your checkings
            await _next(context);
        }
}
Run Code Online (Sandbox Code Playgroud)

在 Config 方法中的 Startup.cs 中,只需注册它:

app.UseMiddleware<MyMiddleware>(Options.Create(options));
Run Code Online (Sandbox Code Playgroud)