Невозможно прочитать секреты пользователя в .net core 2.1 - PullRequest
0 голосов
/ 27 июня 2018

У меня проблема при попытке прочитать секреты пользователя. Мой код в файле startup.cs выглядит следующим образом:

 public Startup(IHostingEnvironment env)
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(env.ContentRootPath)
                .AddJsonFile("appsettings.json",
                    optional: false,
                    reloadOnChange: true);

            if (env.IsDevelopment())
            {
                builder.AddUserSecrets<Startup>(false);
            }

            builder.AddEnvironmentVariables();
            Configuration = builder.Build();
        }

Чтение из appsettings.json и из переменных окружения работает нормально, но независимо от того, что я помещаю в файл secrets.json, из него не читаются никакие значения. Значение UserSecretsId в файле проекта является правильным, а env.IsDevelopment () - true.

Конфигурация содержит три провайдера. Один JsonConfigurationProvider, содержащий данные из appsettings.json, один EnvironmentVariablesConfigurationProvider, содержащий значения из переменных среды, и один JsonConfigurationProvider, который не имеет данных. Я предполагаю, что последний - это тот, кто добавляет секреты пользователей. Но почему он пуст?

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Мне пришлось разделить проект на две части, но я не мог на всю жизнь получить секреты для загрузки в порожденном проекте, у него была точно такая же среда проекта, включая secrets.json в дереве проекта VS2017. ... но он просто не загружается.

При проверке фактических .csproj файлов на каждом, единственное отличие состояло в том, что порожденный проект не имел записи UserSecretsId, поэтому я просто щелкнул правой кнопкой мыши по проекту, нажал Manage User Secrets и затем закрыл последующий редактор Json, без изменений.

Когда я запустил проект в следующий раз, мой оригинальный secrets.json был загружен ... а не пустой.

Похоже, что если у вас есть secrets.json в папке вашего проекта, это переопределяет файл, созданный Manage User Secrets, который создает их в C:\Users\<user>\AppData\Roaming\Microsoft\UserSecrets\<userSercretsId>

0 голосов
/ 30 сентября 2018

попробуй без false. например, builder.AddUserSecrets ();

У меня была такая же проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...