如何通过用户机密将值添加到 C# 中的对象数组

How to add values through user secrets to an array of objects in C#

所以我在尝试让 Visual Studio 将用户机密添加到数组 属性 时遇到了问题。我有一种感觉,这种事情无法完成,但我真的需要一种方法来遍历它们中的每一个,以完成我正在做的事情,并且我不允许将 clientSecrets 存储在标准的 appsettings 文件中显而易见的原因。

有没有办法做到这一点,如果没有,我可以更改此对象以使其在 C# 中可迭代,这也允许我将密码存储在用户机密中?

下面的对象显示了我试图将值存储到的应用程序设置的当前形状:

{
  "TestClients": [
    {
      "ClientSecret": ""
    },
    {
      "ClientSecret": ""
    },
    {
      "ClientSecret": ""
    },
    {
      "ClientSecret": ""
    },
    {
      "ClientSecret": ""
    },
    {
      "ClientSecret": ""
    },
    {
      "ClientSecret": ""
    },
    {
      "ClientSecret": ""
    }
  ]
}

我试过将它变成一个对象并遍历键,但是当对象的形状如下时,我正在使用的控制台应用程序似乎找不到 TestClients 部分:

{
   "TestClients": {
       "ClientName": {
           "ClientSecret": ""
       }
   }
}

配置 API 通过在配置键中使用定界符展平分层数据来读取分层配置数据。 usersecrets 使用相同的扁平化结构,在键中使用分隔符。

所以解决方案是在你的 secrets.json 中加入这样的东西

{
  "TestClients:0:ClientSecret": "Some secret",
  "TestClients:1:ClientSecret": "Other secret",
  "TestClients:2:ClientSecret": "Next secret"
}

您可以在文档中找到更多详细信息: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-3.1#hierarchical-configuration-data https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-3.1#boa