2011-12-06 14 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)を作成し、組織に展開することができます。私たちが実行するカスタムアクションの1つは、appSettingsセクションの暗号化です。上記の状況では、残念なことにweb.configファイル内のセクションのみを暗号化し、customSettings.configは変更しません。

私は、configSource属性がファイル属性よりも暗号化で少しうまく機能することに気付きましたが、両方のファイルから要素をマージすることはサポートしていません。カスタムアクションのすべてを暗号化する前に、customSettings.configの要素をプログラムでマージしてweb.configに組み込むことができましたが、これに対してより洗練されたソリューションがあるかどうかは疑問でした。

+0

私自身の質問で言及したものよりも優れた解決策はまだありません。そのため、私はそれに同意することにしました。 – basvo

答えて

1

暗号化している情報がDBのユーザー名とパスワードの場合、Windows認証を使用してDBに初めて接続する方法もあります。最初のユーザーは非常に制限された権利を持ちます。

この接続を使用して、アイテムレベルのDB暗号化(OPEN SYMMETRIC KEYおよびENCRYPTBYKEYを参照)を使用して以前に格納した上位特権アカウントの資格情報/接続文字列を取得します。

+0

私の例では、実際にはデータベース資格情報を使用していますが、暗号化する必要がある他のアプリケーション設定もあります。それでも、あなたの答えは良いアプローチです。ありがとう。 – basvo