asp.net core参数保护之自定义要保护的参数类型

时间:2020-12-07 05:33:48

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

希望对你有帮助,如果使用遇到什么问题,欢迎与我联系