如何在使用源代码管理时隐藏连接字符串,用户名,pw?

时间:2010-07-05 02:07:08

标签: version-control github connection-string

我正在开发一个小型项目,我正在使用连接字符串以及其他人不应该看到或使用的api键和值。我使用公共GitHub帐户进行源代码管理。当web.config中的这些值是纯文本时,使用源代码控制的常用方法是什么?

在签入代码之前,是否需要手动删除值?

3 个答案:

答案 0 :(得分:66)

我发现的工作是检查文件的版本是否为空白值或虚拟值,然后运行:

git update-index --assume-unchanged [fileName]
然后,Git将停止监视对该文件的更改,允许您将真实的配置信息放入其中,而不必担心将其签入。

如果您稍后进行了想要检查的更改,则可以运行:

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

答案 1 :(得分:32)

我们将敏感和/或机器特定的配置保存在单独的配置文件中,然后使用configSource将它们包括在内......

<connectionStrings configSource="cstrings.config"/>

这样,您可以检入Web.config和cstrings.config文件,该文件具有可在开发计算机上使用的通用值。 (例如,(local),... MyAppNameDb ...)

对于生产环境,请将cstrings.config文件标记为只读并设置部署脚本,以免您尝试对其进行写入。您的生产连接字符串受该框中的安全保护。这可以使您的敏感字符串不受版本控制。

<强> cstrings.config

<?xml version="1.0" encoding="utf-8" ?>
<connectionStrings>
    <add name="Default" connectionString="Server=localhost"/>
</connectionStrings>

答案 2 :(得分:4)

您可以签入包含虚拟值的config.sample文件。然后,每个开发人员都会复制该文件以配置和编辑他们自己的值。然后,您可以将此本地文件放在.gitignore中。