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

当前使用 Net Core 版本 2.1.3

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

这里我用的是 Net Core 自带的 DataProtector ,使用方式自行百度一下

关于中间件 Middleware 可以看看博园大佬写的,太多就不列举了,官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/middleware/index?view=aspnetcore-2.2

一张图来概括就是这样:

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

处理 Request 主体部分

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

FilterRequest 主体部分

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

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

最后是 Response 过滤部分

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

整体执行流程图

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

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

最新文章

  1. pycharm 调试 django 应用
  2. hibernate3连oracle的各种坑。。
  3. java开发命名规范(转载)
  4. AssetManager asset的使用
  5. 动态SQL使用小结
  6. 【原】web服务器占有量统计等 web网站
  7. mysql学习(十一)嵌套查询 排序 分组
  8. TCP、UDP和HTTP
  9. ocp认证考试指南第一章
  10. python之HTMLParser解析HTML文档
  11. 与其争论java和.net的差别,还不如多想点用编程技术挣钱的方式
  12. 关于GitHub中文乱码的问题
  13. .net 手机滑动加载
  14. How to use Junit Listener
  15. 三个解释——MVC的网址
  16. CSS-表格特有属性和定位
  17. sopt:一个简单的python最优化库
  18. bzoj5210最大连通子块和
  19. JS格式化数字保留两位小数点示例代码
  20. HDU 1717 小数化分数2(最大公约数)

热门文章

  1. 声源定位之2精读《sound localization based on phase difference enhancement using deep neuarl networks》
  2. JCR分区 | 中科院SCI期刊分区表
  3. vue-cli安装webpack项目及初始配置
  4. Mybatis报错:org.apache.ibatis.builder.IncompleteElementException
  5. mac软件安装 for Mac
  6. vue-cli3用图形化的方式创建项目
  7. Zabbix使用第三方API短信报警
  8. WINGIDE 激活失败
  9. [UE4] TSharedPtr, TWeakObjectPtr and TUniquePtr
  10. 深入理解虚拟机、容器和 Hyper 技术