2010-04-13 93 views
4

我希望能够在本地运行(工作在多台计算机上完成),部署并承诺版本控制哪里的敏感信息(密码,用户名,端口号,主机名,数据库名称)自动缺失(或删除)并根据发生的情况导入?Visual Studio - 用于部署/源代码管理/源代码共享的用户名/密码管理

敏感数据按重要性顺序列出,所以虽然密码只有解决方案不错,但链越远越好。另外一个好处就是有一个虚拟样本文件供其他人用自己的主机在自己的机器上尝试项目,只需填入虚拟文件的缺失部分即可。

对于此功能,我可以选择哪些方法?我曾考虑将相关设置添加到本地machine.config中,但是这些信息被保存到机器文件中,而不是在我的用户文档文件中加密的地方。此外,对于较新的程序员即插即用,本地虚拟文件本身不会很好。

我在想什么是最干净的解决方案是没有添加到版本控制项目根目录中的本地.config文件。

如果有办法让它的加密方式使得服务器机器是唯一一个具有解密文件的密钥(而不是项目能够做到的),这将被部署,这将是了不起的。然后,我可以将数据存储在源代码管理中,与有兴趣研究项目的其他人分享源代码,而不需要获取实现必要的实际信息以进行重大更改或查看私人信息。

回答

0

我们使用多个.config文件:一个用于dev,一个用于集成,一个用于QA,一个用于预生产,一个用于生产。每个文件都标有后缀(例如:.prod)。

这些文件包含软件连接数据库和服务器所需的所有内容,生产.config文件除外,其中连接字符串,用户和密码已用占位符替换。

当我们向生产团队发运一个新版本的软件时,我们提供了一个最新的,但“中和”的.config文件。制作团队然后添加缺少的信息。

我认为,加密文件(或信息)是不是一个解决方案:那么你将有一个新的问题:如何隐藏用于加密的密钥......

(注:我们用变换来为每个环境生成正确的.config文件。)