ここでの良い解決策は、本番<connectionStrings>
セクションをWeb.configに入力して暗号化し、暗号化され<connectionStrings>
たセクションを変換ファイル(Web.Release.configなど)に移動して、変換<connectionStrings>
時にセクション全体を置き換えるように注釈を付けることです。 。これにより、暗号化された本番接続文字列を使用してWeb.configをデプロイするという目標が達成されます。
Web.configの暗号化方法を理解するために、 「Windows Azureでの接続文字列のセキュリティ保護」のパート1、2、3、および4のガイドに従いました。完全な参考のために、他の人も同じことをすることをお勧めします。シナリオを解決するために実行した主な手順の概要を説明します。
<connectionStrings>
Web.configのセクションを本番環境の設定で更新した後、 Pkcs12 Protected Configuration Providerをインストールし、 aspnet_regiis.exeを実行してセクションを暗号化しました(プロジェクトディレクトリにあるVisual Studioコマンドプロンプトで)。
aspnet_regiis -pef "connectionStrings" "." -prov "CustomProvider"
CustomProvider
また、 Web.configに次の定義を追加しました。
<configProtectedData>
<providers>
<add name="CustomProvider" thumbprint="<your thumbprint here>"
type="Pkcs12ProtectedConfigurationProvider.Pkcs12ProtectedConfigurationProvider, PKCS12ProtectedConfigurationProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=34da007ac91f901d"/>
</providers>
</configProtectedData>
その後、暗号化された<connectionStrings>
セクションをWeb.Release.config(Azureへの展開時にWeb.configを変換するために使用)に移動し、Web.configの対応するセクションを置き換えるようにセクションに注釈を付けました。
connectionStrings configProtectionProvider="CustomProvider" xdt:Transform="Replace">
...
</connectionStrings>
最後に<connectionStrings>
、Web.configの開発セクションを復元しました。このソリューションをテストしたところ、デプロイされたWeb.configに、<connectionStrings>
後と同じように暗号化されたセクションが含まれていることがわかりました。