Visual Studio - 用于部署/源代码控制/源代码共享的用户名/密码管理

时间:2010-04-13 18:55:42

标签: visual-studio web-config machine.config

我想要能够在本地运行(工作在多台计算机上完成),部署和提交到版本控制的简化方法,其中敏感信息包括(密码,用户名,端口(s) ),主机名,数据库名称)根据发生的情况自动缺席(或删除)和导入?

敏感数据按重要性顺序列出,因此虽然只有密码解决方案很好,但链越远越好。另一个很好的例子是,有一个虚拟样本文件供其他人在他们自己的机器上用他们自己的主机试用项目,只需填写虚拟文件的缺失部分。

我有哪些选择可以使用此功能?我考虑将相关设置添加到本地machine.config,但随后信息将保存到计算机文件中,而不是保存在用户文档文件中的某处。另外,对于新的程序员即插即用而言,这不适合本地虚拟文件。

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

如果有办法对服务器机器进行加密,那么服务器机器是唯一一个具有密钥来解密文件(而不是项目能够执行它)的部署,这将是非常好的部署。然后我可以将数据存储在源代码控制中,与其他对研究项目感兴趣的人共享源代码,而无需获取进行重大更改或查看私人信息所需的实际信息。

1 个答案:

答案 0 :(得分:0)

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

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

当我们将新版本的软件发送给生产团队时,我们会发送一个最新的“中和”.config文件。然后,制作团队添加缺失的信息。

我认为加密文件(或信息)不是解决方案:然后你会遇到一个新问题:如何隐藏用于加密的密钥......

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