首页 > 解决方案 > 我们可以像使用 asp.net app.config 一样使用 ASPNET_REGIIS 命令来加密 appsettings.json 的部分吗

问题描述

使用 asp.net 时,我们可以按照以下步骤加密 asp.net 控制台应用程序的 app.config 文件的一部分:-

1- 将 app.config 重命名为 web.config >> 运行此命令 >>

ASPNET_REGIIS -pef "<<customAppSettingsGroup>>/<<customAppSettings>>" "C:\projects\MSE\MSE\MSE"

2- 将 web.config 重命名回 app.config....

现在在 asp.net 核心中我们没有app.config,而是有.. 所以我的问题是我们是否可以使用上述方法appsettings.json加密部分内容?appsettings.json如果答案是否定的,那么加密部分的方法是appsettings.json什么?

谢谢

标签: asp.net-core.net-coreappsettings

解决方案


简短的回答是不,你不应该再使用 ASPNET_REGIIS。除非你想手动解密。

对于开发环境,您应该使用此处描述的 Secret Manager 工具

初始化

dotnet user-secrets init

设置一个秘密

dotnet user-secrets set "Movies:ServiceApiKey" "12345"

对于生产环境 ,推荐的方法是 Azure Vault

假设您已准备好 Azure 保管库

设置你的秘密

az keyvault secret set --vault-name {KEY VAULT NAME} --name "SecretName" --value "secret_value_1_prod"
az keyvault secret set --vault-name {KEY VAULT NAME} --name "Section--SecretName" --value "secret_value_2_prod"  

Azure 托管的应用使用此说明

如果您在 azure 之外托管您的应用程序,则必须遵循此说明

PS:如果您的应用程序不会在运行时加载密钥,则仅在启动时免费层就足够了。

您可以在此处查看第三个选项来创建自定义提供程序。

或者

这篇来自 Visual Studio 杂志的文章是关于使用 AES 加密的自定义配置提供程序

第四种选择:
如果你愿意使用 docker,你可以依赖 Docker Swarm 的秘密,如本文所示


推荐阅读