我怎样才能保存这个:
"myList" : [ "file", "something" ]
在 dotnet 用户机密中?
我可以使用以下命令将其添加到用户机密中:
dotnet user-secrets set --id my-id myList "[ \"file\", \"something\" ]"
但这被保存为字符串,并且与从 appsettings.json 读取的行为不同。
在我看来,用户机密不支持 json 数组。这个对吗?
我怎样才能保存这个:
"myList" : [ "file", "something" ]
在 dotnet 用户机密中?
我可以使用以下命令将其添加到用户机密中:
dotnet user-secrets set --id my-id myList "[ \"file\", \"something\" ]"
但这被保存为字符串,并且与从 appsettings.json 读取的行为不同。
在我看来,用户机密不支持 json 数组。这个对吗?
您可以直接编辑项目的“用户机密”。项目的用户机密保存在“secrets.json”文件中。文件位置在这里:
在 Windows 中:%Appdata%\Microsoft\UserSecrets\<guid>\secrets.json
在 Linux 中:~/.microsoft/usersecrets/<guid>/secrets.json
<guid>基本上是项目用户机密的 GUID。您可以在 .csproj 文件中看到它,如下所示:
<UserSecretsId>16abe888-53cb-415c-9889-797efe87c422</UserSecretsId>
这是一个示例secrets.json文件:
{
"UserSecretsConfig" : {
"UserName1": "john.doe",
"Password1": "pppp",
"Domain": "company.local",
"Uri": "https://google.com/",
"ToEmails":["user1@example.com", "user2@example.com", "user3@example.com"]
}
}
这是示例用户机密的模型类:
public class MyUserSecretsConfig
{
public string UserName1 { get; set; }
public string Password1 { get; set; }
public string Domain { get; set; }
public string Uri { get; set; }
public IEnumerable<string> ToEmails { get; set; }
}
以下是在控制台应用程序中读取“用户机密”的示例代码:
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddUserSecrets<Program>();
var config = builder.Build();
MyUserSecretsConfig mySecrets = config.GetSection("UserSecretsConfig")
.Get<MyUserSecretsConfig>();
为了使上面显示的代码正常工作,您必须将这些包添加到您的项目中:
此外,如果您将在 ASP.NET Core 应用程序中访问用户机密,则可以通过 Startup 类的注入获得配置。不需要 ConfigurationBuilder。
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}