UserSecrets ASP.NET Core

Всем привет.

Я слышал что в .NET Core есть такая штука как UserSecrets, позволяющая скрывать определённые данные (например, локальную строку подключения к базе данных) от System Version Control типа Git.

Расскажите про это, пожалуйста

В Azure у вас есть возможность настраивать конфигурации настроен прямо из настроек вашего веб приложения, перегружая при этом настройки вашего файла config. При этом не имеет значения это web.config или appsetting.json.

Однако у нас нет возможности проделывать то же самое на локальной машине разработки, т.к. там нет такой конфигурации. Итак, где и как же можно скрыть данные?

С платформой .NET Core получается что-то похожее. Есть так называемый инструмент SecretManager, который поддерживается .NET Core SDK. (Microsoft.Extensions.SecretManager.Tools), к которому можно получить доступ через дотнет CLI.

Что бы испольовать инструмент SecretManager, вам необходимо кликнуть на раздел "Tools" вашего project.json, вроде такого:

"Microsoft.Extensions.SecretManager.Tools": {
  "version": "1.0.0-preview2-final",
  "imports": "portable-net45 win8 dnxcore50"
},

Будьте уверены что у вас есть userSecretId в вашем проекте project.json. С этим ID SecretManager проинициализирует user secrets в вашем приложении:

"userSecretsId": "aspnet-UserSecretDemo-79c563d8-751d-48e5-a5b1-d0ec19e5d2b0",

и тд...

Прочтите документацию, описанную на сайте - https://asp.net-hacker.rocks/2016/07/11/user-secrets-in-aspnetcore.html