Как скрыть строку подключения, имя пользователя, pw при использовании контроля версий? - PullRequest
48 голосов
/ 05 июля 2010

Я работаю над небольшим сайд-проектом и использую строки подключения, а также ключи и значения API, которые не должны использоваться другими людьми.Я использую публичную учетную запись GitHub для контроля версий.Каков обычный метод использования управления исходным кодом, когда эти значения находятся в виде простого текста в web.config?

Нужно ли удалять значения вручную перед проверкой кода?

Ответы [ 3 ]

66 голосов
/ 21 декабря 2010

Что я нахожу работающим, это проверить версию файла с пустыми или фиктивными значениями и затем запустить:

git update-index --assume-unchanged [fileName]

После этого Git прекратит отслеживать изменения в этом файле, что позволит вам поместить в него информацию о реальной конфигурации, не боясь проверить это.

Если вы позже внесете изменения, которые хотите проверить, вы можете выполнить:

git update-index --no-assume-unchanged [fileName]
32 голосов
/ 05 июля 2010

Мы храним конфиденциальную и / или машинную конфигурацию в отдельных конфигурационных файлах, затем используем configSource для включения их следующим образом ...

<connectionStrings configSource="cstrings.config"/>

Таким образом, вы можете проверить в Web.config и a cstringsФайл .config, имеющий общее значение, которое можно использовать на компьютере разработчика.(например, (локально), ... MyAppNameDb ...)

Для производственных сред пометьте файл cstrings.config как доступный только для чтения и настройте сценарий развертывания, чтобы не пытаться писатьнад ним.Строка производственного подключения защищена любой защитой, установленной на этом ящике.Это предохраняет ваши чувствительные строки от контроля версий.

cstrings.config :

<?xml version="1.0" encoding="utf-8" ?>
<connectionStrings>
    <add name="Default" connectionString="Server=localhost"/>
</connectionStrings>
4 голосов
/ 05 июля 2010

Вы можете зарегистрировать файл, например config.sample, который содержит фиктивные значения. Каждый разработчик затем скопирует этот файл для настройки и редактирования в своих собственных значениях. Затем вы поместите этот локальный файл в .gitignore.

...