欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Net Core 自定义 Middleware 加密解密

程序员文章站 2022-07-02 13:03:08
前言:第一次写文章,有问题请轻喷 当前使用 Net Core 版本 2.1.3 我们经常在开发中需要把实体的主键 Id 传输到前端,但是在Get的时候又不想让前端能看到明文,我们通常会加密这些数据,所以有了这篇文章来写一些心得。(主要是我在网上找的代码写得太简单了,不符合我的需求) 这里我用的是 N ......

前言:第一次写文章,有问题请轻喷

当前使用 net core 版本 2.1.3

我们经常在开发中需要把实体的主键 id 传输到前端,但是在get的时候又不想让前端能看到明文,我们通常会加密这些数据,所以有了这篇文章来写一些心得。(主要是我在网上找的代码写得太简单了,不符合我的需求)

这里我用的是 net core 自带的 dataprotector ,使用方式自行百度一下

关于中间件 middleware 可以看看博园大佬写的,太多就不列举了,官方文档:

一张图来概括就是这样:

Net Core 自定义 Middleware 加密解密

 

 

 

第一步,过滤请求(request):

 

Net Core 自定义 Middleware 加密解密
处理 request 主体部分

要注意这里 newresponse 是没有 dispose 的,本来是用的双重 using ,但是感觉嵌套太多,个人编码风格,可以自行选择

Net Core 自定义 Middleware 加密解密
filterrequest 主体部分

目前只做了 get 和 post 其他 method 可自行添加。目前只是匹配参数中,字段名以 id 结尾的字段进行筛选,可以自己做扩展,自定义特性和反射去做也是可以的,更加灵活,

不过要牺牲一点点性能,看你怎么取舍了和你的需求了,这里只是做一次demo。

 

Net Core 自定义 Middleware 加密解密
最后是 response 过滤部分

因为 response 都是一样过滤,所以比较简单。

整体执行流程图

Net Core 自定义 Middleware 加密解密

 

写在最后:整个项目就不发上去了,帮朋友写的一个小玩意,这个类文件我发布到百度网盘把。

链接: https://pan.baidu.com/s/1m72thkw8zazyypwo0yw2fq 提取码: r3qh