Проблема:Web.config: чувствительные настройки
Я хотел бы запустить мой сайт ASP.NET MVC локально с помощью IIS, используя мой секрет клиента Facebook. Я также хотел бы сохранить секрет клиента Facebook вне контроля источника. Я публикую все это для Azure, поэтому нет проблем, когда я запускаю свой веб-сервер в Облаке. Чувствительные настройки идут прямо в службу приложений и никогда не видят контроль источника.
В принципе, хранить секрет клиента вне контроля источника легко. Я могу только добавить источник конфигурации в настройки приложения в Web.config:
<appSettings configSource="facebookClientSecret.config" />
и все мои настройки могут войти в facebookClientSecret.config
, который добавляется к .gitignore
.
В этом заключается проблема: все мои настройки. Я не хочу скрывать все настройки от источника управления: только чувствительные.
Я попытался сделать это:
<appSettings> <add key="webpages:Version" value="3.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> <add configSource="facebookAppSecret.config" /> <add key="StorageConnectionString" value="UseDevelopmentStorage=true" /> </appSettings>
Но, очевидно, что это "не допускается". Есть ли способ иметь подмножество параметров приложения, полученных из отдельного файла?
Позвольте мне сказать, что это работает. Я отмечу это как ответ - спасибо. –
Работает отлично. Единственное, что нужно добавить, это то, что необходимо пометить внешний файл «Copy Always» или «Copy if newer». Это сбило меня с толку в первый раз, когда я попробовал это. –
Хорошая точка - вам по крайней мере нужно, чтобы отладка F5 работала правильно. Я расскажу об этом подробнее. –