如何在使用源代码pipe理时隐藏连接string,用户名,密码?

我正在做一个小型的项目,我正在使用连接string,也不应该被其他人看到或使用的API键和值。 我使用公共GitHub帐户进行源代码pipe理。 在web.config中使用纯文本时,使用源代码pipe理的常用方法是什么?

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

我发现的作品是用空白或虚拟值检入文件的版本,然后运行:

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

然后,Git将停止监视对该文件的更改,使您可以将真实的configuration信息放入该文件中,而不用担心检查它。

如果您稍后进行要签入的更改,则可以运行:

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

我们保持敏感和/或机器特定的configuration在单独的configuration文件中,然后使用configSource来包含它们,就像这样…

 <connectionStrings configSource="cstrings.config"/> 

这样你就可以检查Web.config和一个cstrings.config文件,该文件具有可以在开发机器上使用的通用值。 (例如,(本地),… MyAppNameDb …)

对于生产环境,请将cstrings.config文件标记为只读,并设置您的部署脚本,以便不要试图覆盖它。 您的生产连接string受到该框上的任何安全保护。 这使您的敏感string不受版本控制。

cstrings.config

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

您可以检查包含虚拟值的文件,如config.sample。 然后,每个开发人员将复制该文件,以自己的值进行configuration和编辑。 然后你会把这个本地文件放在.gitignore中。