前言:第一次寫文章,有問題請輕噴 當前使用 Net Core 版本 2.1.3 我們經常在開發中需要把實體的主鍵 Id 傳輸到前端,但是在Get的時候又不想讓前端能看到明文,我們通常會加密這些數據,所以有了這篇文章來寫一些心得。(主要是我在網上找的代碼寫得太簡單了,不符合我的需求) 這裡我用的是 N ...
前言:第一次寫文章,有問題請輕噴
當前使用 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