Skip to main content
Version: v1.9.0

Configuration secret provider

Configuration secret provider brings you all registered configuration providers of .NET Core by using IConfiguration to your application.

⚡ Supports synchronous secret retrieval.

⚠ When using configuration secret provider, it will look for secrets in all configuration sources which is not secure. This provider should only be used for development.

Installation#

The configuration secret provider is built-in as part of the package Arcus.Security.Core.

Configuration#

using Microsoft.Extensions.Hosting;
public class Program{    public static void Main(string[] args)    {        CreateHostBuilder(args).Build().Run();    }
    public static IHostBuilder CreateHostBuilder(string[] args)    {            return Host.CreateDefaultBuilder(args)                   .ConfigureAppConfiguration((context, config) =>                    {                       config.AddJsonFile("appsettings.json")                             .AddJsonFile("appsettings.Development.json");                   })                   .ConfigureSecretStore((HostBuilderContext context, IConfiguration config, SecretStoreBuilder builder) =>                   {#if DEBUG                       // Uses the built `IConfiguration` as a secret provider.                       builder.AddConfiguration(config);
                       // Uses the built `IConfiguration` as secret provider, using `:` instead of `.` when looking up secrets.                       // Example - When looking up `Queue.Name` it will be changed to `queue:name`.                       builder.AddConfiguration(config, mutateSecretName: secretName => secretName.Replace(".", ":").ToLower());
                       // Providing an unique name to this secret provider so it can be looked up later.                       // See: "Retrieve a specific secret provider from the secret store"                       builder.AddConfiguration(..., name: "Configuration");#endif                   });                   .ConfigureWebHostDefaults(webBuilder => webBuilder.UseStartup<Startup>());    }}