2010-04-13 152 views
4

我希望能夠在本地運行(工作在多臺計算機上完成),部署並承諾版本控制哪裏的敏感信息(密碼,用戶名,端口號,主機名,數據庫名稱)自動缺失(或刪除)並根據發生的情況導入?Visual Studio - 用於部署/源代碼管理/源代碼共享的用戶名/密碼管理

敏感數據按重要性順序列出,所以雖然密碼只有解決方案不錯,但鏈越遠越好。另外一個好處就是有一個虛擬樣本文件供其他人用自己的主機在自己的機器上嘗試項目,只需填入虛擬文件的缺失部分即可。

對於此功能,我可以選擇哪些方法?我曾考慮將相關設置添加到本地machine.config中,但是這些信息被保存到機器文件中,而不是在我的用戶文檔文件中加密的地方。此外,對於較新的程序員即插即用,本地虛擬文件本身不會很好。

我在想什麼是最乾淨的解決方案是沒有添加到版本控制項目根目錄中的本地.config文件。

如果有辦法讓它的加密方式使得服務器機器是唯一一個具有解密文件的密鑰(而不是項目能夠做到的),這將被部署,這將是了不起的。然後,我可以將數據存儲在源代碼管理中,與有興趣研究項目的其他人分享源代碼,而不需要獲取實現必要的實際信息以進行重大更改或查看私人信息。

回答

0

我們使用多個.config文件:一個用於dev,一個用於集成,一個用於QA,一個用於預生產,一個用於生產。每個文件都標有後綴(例如:.prod)。

這些文件包含軟件連接數據庫和服務器所需的所有內容,生產.config文件除外,其中連接字符串,用戶和密碼已用佔位符替換。

當我們向生產團隊發運一個新版本的軟件時,我們提供了一個最新的,但「中和」的.config文件。製作團隊然後添加缺少的信息。

我認爲,加密文件(或信息)是不是一個解決方案:那麼你將有一個新的問題:如何隱藏用於加密的密鑰......

(注:我們用變換來爲每個環境生成正確的.config文件。)