Visual Studio w ramach .NET Core umożliwia przechowywanie wrażliwych danych konfiguracyjnych poza projektem aplikacji. Do tego celu służy opcja Manage User Secrets, która dostępna jest po rozwinięciu menu kontekstowego na projekcie.
Opcja Manage User Secrets nie jest dostępna w Visual Studio for Mac i w tym celu należy posłużyć się wierszem poleceń.
W pierwszym kroku przechodzimy do lokalizacji projektu i inicjalizujgemy ustawienia:
dotnet user-secrets init dotnet user-secrets set "TopSecret:Password" "12345"
Alternatywnie możemy wczytać ustawienia z pliku w formacie json, który jest poza projektem:
{
"ConnectionStrings": {
"Projekt": "TopSecret"
}
}
Następnie z poziomu wiersza poleceń wczytujemy ustawienia z pliku:
cat /file/path/to/secrets.json | dotnet user-secrets set
Dostęp do ustawień odbywa się następująco:
public class Startup
{
public IConfiguration Configuration { get; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
//...
string dbConnString = Configuration["ConnectionStrings:Users"];
}
}
UsersSecrets dodawane są przy domyślnej konfiguracji Development. Jeżeli tworzenie hosta aplikacji wygląda jak poniżej, „ukryte” ustawienia powinny być dostępne. W przeciwnym razie należy dodać poniższy kod, który jest zakomentowany.
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
//.ConfigureAppConfiguration((hostContext, builder) => {
// if (hostContext.HostingEnvironment.IsDevelopment())
// {
// builder.AddUserSecrets<Program>();
// }
//})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
Listę ukrytych ustawień wyświetlamy poleceniem
dotnet user-secrets list