Reputation: 350
how can i get to save this:
"myList" : [ "file", "something" ]
in dotnet user-secrets?
I can add this to user secrets with the command:
dotnet user-secrets set --id my-id myList "[ \"file\", \"something\" ]"
but this is saved as a string and doesnt behave the same as if read from the appsettings.json.
it appears to me that user secrets do not support json arrays. is this correct?
Upvotes: 0
Views: 1957
Reputation: 1541
You can directly edit "user secrets" of your project. User secrets of a project are saved in "secrets.json" file. The file location is here :
In Windows : %Appdata%\Microsoft\UserSecrets\<guid>\secrets.json
In Linux: ~/.microsoft/usersecrets/<guid>/secrets.json
<guid> is basically GUID for your project's user secrets. you can see it in the .csproj file like this :
<UserSecretsId>16abe888-53cb-415c-9889-797efe87c422</UserSecretsId>
Here is a sample secrets.json file :
{
"UserSecretsConfig" : {
"UserName1": "john.doe",
"Password1": "pppp",
"Domain": "company.local",
"Uri": "https://google.com/",
"ToEmails":["[email protected]", "[email protected]", "[email protected]"]
}
}
Here is model class for the sample user secrets :
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; }
}
Here is sample code for reading "user secrets" in a console app :
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddUserSecrets<Program>();
var config = builder.Build();
MyUserSecretsConfig mySecrets = config.GetSection("UserSecretsConfig")
.Get<MyUserSecretsConfig>();
In order the above shown code to work you have to add these packages to your project:
In addition, if you will be accessing user secrets in a ASP.NET Core application the Configuration is available via Injection at Startup class. There is no need for ConfigurationBuilder.
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
Upvotes: 2