| 階段 | 做法 |
| 開發 | app.config 用本機/區網連線,不提交密碼 (用 Integrated Security=True 或本地帳號)。 |
| 建置/發布 | 使用 Config Transformation (Web.config 轉換語法同樣適用 App.config) 或 使用者設定 (Settings.settings, Scope=User) 在首次執行提示輸入。 |
| 生產 | 連線字串**加密** (aspnet_regiis -pef 或 DPAPI),或存於 **Azure Key Vault / 環境變數**,啟動時讀取組裝。 |
程式碼範例:啟動時組裝加密連線字串
string connStr = ConfigurationManager.ConnectionStrings["Default"].ConnectionString;
// 若密碼為佔位符 {PWD},從安全存儲讀取替換
if (connStr.Contains("{PWD}")) {
string pwd = SecureStore.Get("SqlPwd"); // 自行實作 DPAPI/KeyVault 讀取
connStr = connStr.Replace("{PWD}", pwd);
}
using (var cn = new SqlConnection(connStr)) { cn.Open(); ... }
總結
遠端連線先通網路/防火牆/SQL 設定三關。發布時**絕不**將明文密碼寫在隨程式分發的 config。採用 Config Transform + 使用者設定/加密存儲/雲端密鑰保管,做到原始碼無密碼、部署自動注入。
- 上一篇文章: Java TreeSet 多屬性排序:Comparable 與 Comparator 策略
- 下一篇文章: Android Fragment 跳轉錯誤:Intent 目標必須是 Activity,Fragment 需用 FragmentTransaction
Copyright ©
程式碼之家 All Rights Reserved