Мы создаем приложение .NET Core 2.1 с проектом веб-API, который подключается к базе данных SQL Server.
Я пытаюсь понять, как правильно использовать переменные среды при хранении моегоСтроки подключения в наиболее безопасном месте.
Когда я услышал, что могу использовать переменные среды для хранения таких вещей, как строка подключения, которая звучит действительно хорошо.Это безопасно, и у нас могут быть разные переменные от разработчика к разработчику и в промежуточной и производственной среде.Это полезно, поскольку не все они имеют одинаковые имена для своего экземпляра SQL Server.
Но когда я теперь добавляю строку подключения к моим переменным среды Windows, например:
или через PowerShell, например, так:
setx CUSTOMCONNSTR_MyContextDb "Server=.\\MYSQLSERVER;Database=MyDb_local;Trusted_Connection=True;ConnectRetryCount=0"
И я пытаюсь получить это так:
var connectionString = Configuration.GetConnectionString("MyContextDb");
это не работает.Строка имеет значение null.
Я смогу заставить эту строку кода работать, только если добавлю переменную CUSTOMCONNSTR_MyContextDb и значение в переменные среды, когда перейду к свойствам проекта и затем введу переменную среды тамна вкладке «Отладка».Который в основном просто устанавливает их в файле launchSettings.json.Это вряд ли лучше, чем appsettings.json (или это?).
Я неправильно понял использование переменных среды в .NET Core?Могу ли я не использовать определенные в Windows переменные среды?Или я могу использовать только реальные переменные среды Windows на своем сервере IIS?
Похоже, что я могу, потому что я вижу список из более чем 80 переменных среды, когда я отлаживаю и смотрю на объект конфигурации.
Для справки этот пост с коротким клипом на YouTube помог мне лучше понять концепции, связанные с этим, но я не до конца понимаю все, надеюсь, вы поможете.