Как скрыть строку подключения, имя пользователя, pw при использовании источника управления?
Я работаю над небольшим побочным проектом, и я использую строки подключения, а также ключи и значения api, которые не следует рассматривать или использовать другими людьми. Я использую публичную учетную запись GitHub для контроля источника. Каков обычный метод использования источника управления, когда эти значения находятся в виде простого текста в web.config?
Нужно ли вручную удалять значения перед проверкой кода?
Ответы
Ответ 1
То, что я нахожу, это проверить версию файла с затуманенными или фиктивными значениями, а затем запустить:
git update-index --assume-unchanged [fileName]
Git перестанет отслеживать изменения в этом файле, позволяя вам вставлять в него реальную конфигурационную информацию, не опасаясь проверить ее.
Если вы позже вносите изменения, которые вы хотите проверить, вы можете запустить:
git update-index --no-assume-unchanged [fileName]
Ответ 2
Мы сохраняем конфиденциальную и/или специфичную для машины конфигурацию в отдельных файлах конфигурации, а затем используем configSource, чтобы включить их так...
<connectionStrings configSource="cstrings.config"/>
Таким образом, вы можете проверить в Web.config и файл cstrings.config, который имеет общее значение, которое можно использовать на dev-машине. (например, (локальный),... MyAppNameDb...)
В производственных средах отметьте файл cstrings.config как доступный только для чтения и настройте развертывание script, чтобы вы не пытались написать над ним. Строка вашего производственного подключения защищена любой защитой, которую вы используете в этом поле. Это позволяет сохранить чувствительные строки вне контроля версий.
cstrings.config
<?xml version="1.0" encoding="utf-8" ?>
<connectionStrings>
<add name="Default" connectionString="Server=localhost"/>
</connectionStrings>
Ответ 3
Вы можете проверить файл, например config.sample, который содержит фиктивные значения. Каждый разработчик затем копирует этот файл в конфигурацию и редактирует их собственные значения. Затем вы помещаете этот локальный файл в .gitignore.