appsettingsにはデバッグ時の情報を記述します。
本番環境では、この情報を環境変数に定義します。 例えば、
"ConnectionStrings": {
"Movies": "Server=(localdb)\\mssqllocaldb;..."
}
上記のような定義がappsettingsにある場合は、環境変数 “ConnectionStrings__Movies” に本番環境の接続文字列を定義します。
__
(アンダースコアを2つ連続させる)は階層構造を示すデリミタです。このデリミタは、:
に自動的に置換されます。
通常通り、appsettings.jsonから取得するコードを書くだけです。環境変数から取得するようなコードを書く必要はありません。
なお、明示的にappsettingsから値を取得する場合は、以下のように __
を :
に置き換えて取得します。
_constr = Configuration["ConnectionStrings:Movies"];
プロジェクトのプロパティのデバッグページで、シークレット情報を含んだ環境変数を定義してはいけない。 この情報は、Properties/launchSettings.json 内に書き込まれ、gitの管理対象となってしまう。