1. 程式人生 > >asp.net core引數保護之自定義要保護的引數型別

asp.net core引數保護之自定義要保護的引數型別

asp.net core引數保護之自定義要保護的引數型別

Intro

為了實現 asp.net core 下的引數保護,擴充套件了asp.net core 中 DataProtection,可以自動化的保護某些敏感引數,上次推出之後有一些小夥伴反饋希望能保護 JsonResult 返回的引數,本文主要以 JsonResult 為例介紹如何註冊自定義型別

基本使用

首先需要安裝 nuget 包 WeihanLi.DataProtection

在 Startup 中註冊 ParamsProtection 服務,ParamsProtection 依賴於 DataProtection 所以需要先註冊 DataProtection

服務,示例如下:

services.AddDataProtection()
            .AddParamsProtection(options =>
            {
                options.ProtectParams = new[]
                {
                    "id"
                };
            });

按照上面的配置,預設就會保護名為 id 的引數(不區分大小寫),更多基本用法參見說明,這裡不再詳細闡述

註冊自定義型別

ParamsProtection

預設只支援保護 ObjectResult 型別的引數,很多人希望新增對 JsonResult 的支援,因為 WeihanLi.DataProtection 這個包裡的依賴不包含 JsonResult 所以沒有預設支援,不過現在提供了一種通用的方式可以支援自己註冊了,不僅僅是 JsonResult,其它你自定義的型別只要實現了 IActionResult 介面的都是可以的。

註冊對 JsonResult 型別的引數保護:

options.AddProtectValue<JsonResult>(r => r.Value);

End

希望對你有幫助,如果使用遇到什麼問題,歡迎與我聯絡