ASP.NET Core - Как расшифровать и использовать зашифрованный раздел конфигурации? - PullRequest
0 голосов
/ 26 ноября 2018

Я следовал за этот ответ и теперь я не уверен, как вернуть правильные значения и использовать их в коде.

Это раздел конфигурации, который мне нужениспользовать:

  "ConnectionStrings": {
    "connString1": "CfDJ8P1kYd0KR1J........",
    "connString2": "CfDJ8P1kYd0KR1J........"
  }

И это мой файл Startup.cs:

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);


            services.AddProtectedConfiguration();

            services.ConfigureProtected<ProtectedConnectionStrings>(Configuration.GetSection("ConnectionStrings"));

            services.AddDbContext<MyDBContext>(options =>
            options.UseSqlServer(Configuration.GetSection("ConnectionStrings")["connString2"]));
.
.
.


Но значения, которые я получаю из конфигурации, не расшифровываются.
Кроме того, объект, возвращаемый из Configuration.GetSection(), является обычным ConfigurationSection объектом (а не пользовательским ProtectedConfigurationSection объектом, который у меня есть).

Должны ли зашифрованные значения храниться в файле appsettings.json?или они хранятся в файле key-....?

Что я делаю не так?

1 Ответ

0 голосов
/ 17 апреля 2019

Вы должны использовать DI для получения незашифрованных значений от вашего сервиса.

public class MySQLClass
{
    public MySQLClass(IOptions<ConnectionStrings> connectionStrings)
    {
        string unencryptedCS = connectionStrings.Value.connString1;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...