2011-12-06 127 views
3

我有一些麻煩加密配置部分。我們用一個包從外部供應商,並在web.config中通過以下方式結構:加密自定義配置設置

的web.config

<appSettings file="customSettings.config"> 
    <add key="generic_setting" value="true"/> 
    <add key="another_generic_setting" value="false"/> 
</appSettings> 

customSettings.config

<appSettings> 
    <add key="company_db_username" value="sa"/> 
    <add key="company_db_password" value="secret"/> 
</appSettings> 

我們使用WiX創建一個安裝包(msi),以便我們可以在我們的組織中部署這個包。我們執行的一個自定義操作是appSettings部分的加密。在上面描述的情況下,不幸的是只加密web.config文件中的部分並且不改變customSettings.config。

我注意到configSource屬性的加密比文件屬性好一些,但它不支持從兩個文件合併元素。現在我可以以編程方式將customSettings.config的元素合併到web.config中,然後加密自定義操作中的所有內容,但我想知道是否有更清晰的解決方案。

+0

我沒有看到比我在自己的問題中提到的解決方案更好的解決方案,所以我決定繼續這樣做。 – basvo

回答

1

根據您的示例,您正在加密的信息是數據庫用戶名和密碼,另一種方法是使用Windows身份驗證第一次連接到您的數據庫。初始用戶的權限非常有限。

使用該連接來獲取先前使用項目級數據庫加密存儲的高權限帳戶(請參閱OPEN SYMMETRIC KEY和ENCRYPTBYKEY)的憑證/連接字符串。

+0

在我的示例中,我確實使用數據庫憑據,但也有其他應用程序設置需要加密。不過,你的回答是一個好方法。謝謝。 – basvo