找回密码
 会员注册
查看: 127|回复: 0

ASP.NET Core 自定义中间件

[复制链接]

250

主题

1

回帖

819

积分

管理员

积分
819
发表于 2024-2-29 08:40:50 | 显示全部楼层 |阅读模式

介绍

中间件用于处理请求和响应。ASP.NET 开发的时代,处理请求和响应使用的事 HttpModule 和 HttpHandler 来处理的,ASP.NET Core 中替换成了中间件,ASP.NET Core 是基于一系列中间件构建的。

中间件是一个接着一个被调用,响应以相反的顺序返回,每个中间件都可以选择请求是否传递到下一个中间件,从而处理该请求,中间件也称之为管道,中间件可以避免不必要的处理。

执行流程

在这里插入图片描述

自定义中间件

这里我们以 Token 效验为例,讲解如何创建及使用自定义中间件

1. 创建

  1. public class RequestTokenCheckMiddleware
  2. {
  3. private readonly RequestDelegate _next;
  4. public RequestTokenCheckMiddleware(RequestDelegate next)
  5. {
  6. _next = next;
  7. }
  8. public async Task InvokeAsync(HttpContext context)
  9. {
  10. string token = context.Request.Query["Token"];
  11. if (token == "XXX") // 验证 token 有效性,为了演示便写
  12. await _next(context); // 传递给下一中间件
  13. else // 验证不通,返回响应
  14. await context.Response.WriteAsync("Token is invalid.");
  15. }
  16. }
复制代码

2. 使用

2.1 公开中间件

中间件使用需要,对 IApplicationBuilder 类型进行扩展方法公开中间件

  1. public static class RequestTokenCheckExtensions
  2. {
  3. public static IApplicationBuilder UseRequestTokenCheck(this IApplicationBuilder builder)
  4. {
  5. return builder.UseMiddleware<RequestTokenCheckMiddleware>();
  6. }
  7. }
复制代码

2.2 使用中间件

在 Startup.cs 类 Configure 方法中,添加中间件 RequestTokenCheckMiddleware

  1. app.UseRequestTokenCheck();//Token 检查
复制代码

在这里插入图片描述

使用场景

中间件是外层请求最先处理地方,可以做效验等工作,一般不用于处理业务逻辑。


来源:https://blog.csdn.net/weixin_46785144/article/details/118018852
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?会员注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-26 13:13 , Processed in 0.943071 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表