介绍
中间件用于处理请求和响应。ASP.NET 开发的时代,处理请求和响应使用的事 HttpModule 和 HttpHandler 来处理的,ASP.NET Core 中替换成了中间件,ASP.NET Core 是基于一系列中间件构建的。
中间件是一个接着一个被调用,响应以相反的顺序返回,每个中间件都可以选择请求是否传递到下一个中间件,从而处理该请求,中间件也称之为管道,中间件可以避免不必要的处理。
执行流程
自定义中间件
这里我们以 Token 效验为例,讲解如何创建及使用自定义中间件
1. 创建 - public class RequestTokenCheckMiddleware
- {
- private readonly RequestDelegate _next;
- public RequestTokenCheckMiddleware(RequestDelegate next)
- {
- _next = next;
- }
- public async Task InvokeAsync(HttpContext context)
- {
- string token = context.Request.Query["Token"];
- if (token == "XXX") // 验证 token 有效性,为了演示便写
- await _next(context); // 传递给下一中间件
- else // 验证不通,返回响应
- await context.Response.WriteAsync("Token is invalid.");
- }
- }
复制代码
2. 使用
2.1 公开中间件
中间件使用需要,对 IApplicationBuilder 类型进行扩展方法公开中间件 - public static class RequestTokenCheckExtensions
- {
- public static IApplicationBuilder UseRequestTokenCheck(this IApplicationBuilder builder)
- {
- return builder.UseMiddleware<RequestTokenCheckMiddleware>();
- }
- }
复制代码
2.2 使用中间件
在 Startup.cs 类 Configure 方法中,添加中间件 RequestTokenCheckMiddleware - app.UseRequestTokenCheck();//Token 检查
复制代码
使用场景
中间件是外层请求最先处理地方,可以做效验等工作,一般不用于处理业务逻辑。 来源:https://blog.csdn.net/weixin_46785144/article/details/118018852 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |