Пример #1
0
        public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
                                  webBuilder.ConfigureAppConfiguration((hostingContext, config) =>
        {
            var originalConfig = config.Build();
            var azureAppConfigurationConnection = originalConfig.GetConnectionString("AppConfig");
            var env = hostingContext.HostingEnvironment;
            var configurationRoot = config.Sources.ElementAt(0);

            config.Sources.Clear();

            config.Add(configurationRoot);

            config.AddJsonFile("appsettings.json",
                               optional: false,
                               reloadOnChange: true
                               );

            config.AddJsonFile($"appsettings.{env.EnvironmentName}.json",
                               optional: true,
                               reloadOnChange: true
                               );

            config.AddAzureAppConfiguration(options =>
            {
                options.Connect(azureAppConfigurationConnection)
                .ConfigureKeyVault(options =>
                {
                    options.SetCredential(AzureCredentialProvider.GetAzureCredential(env, originalConfig));
                });
            });

            if (env.IsDevelopment())
            {
                config.AddUserSecrets(Assembly.GetExecutingAssembly());
            }

            config.AddEnvironmentVariables();

            config.AddCommandLine(args);
        }).UseStartup <Startup>());
Пример #2
0
        private void ConfigureDataProtection(IServiceCollection services)
        {
            if (environment.IsProduction() == false)
            {
                return;
            }

            var azureCredential = AzureCredentialProvider.GetAzureCredential(environment, configuration);

            var client = new BlobServiceClient(
                configuration.GetValue <Uri>("DexStorageContainer:BaseUrl"),
                azureCredential
                );

            var blobContainerName   = configuration.GetValue <string>("DexStorageContainer:DexIdentityBlobContainer:ContainerName");
            var blobContainerClient = client.GetBlobContainerClient(blobContainerName);
            var blobName            = configuration.GetValue <string>("DexStorageContainer:DexIdentityBlobContainer:KeysBlobName");
            var blobClient          = blobContainerClient.GetBlobClient(blobName);

            services.AddDataProtection()
            .PersistKeysToAzureBlobStorage(blobClient)
            .ProtectKeysWithAzureKeyVault(configuration.GetValue <Uri>("AspNetCoreDataProtectionKeyUri"), azureCredential);
        }