WebとWinFormsアプリケーションの間で共通のデータベースコードを使用しています。私は、web.configファイルとapp.configファイルの接続文字列セクションを暗号化する方法を研究し、解決しました。その部分は大丈夫です。また、私のAzure Webアプリケーションで接続文字列を解読する方法を試しました。これは問題ありません。また、私のWinFormsアプリケーションの接続文字列を、マシンの証明書ストアに.pfxファイルをロードした後に読むこともできますが、リブートした後、pfxファイルの秘密鍵が見つからないため失敗します。WinFormsアプリケーション用のapp.configの接続文字列の暗号化
makecert -r -pe -n "CN =のMyConfig" -sky交流 "myconfig.cer" -sv "myconfig.pvk"
pvk2pfx:
私はこれらのコマンドで作成した証明書を使用していますこれは私の3つのファイル与え-pi
-pvk "myconfig.pvk" -spc "myconfig.cer" -pfx "myconfig.pfx":myconfig.pvk、myconfig.cerは、私が想定し
をmyconfig.pfx問題は秘密鍵がpfxファイルに格納されていないことであり、後で毎回再認証する必要がある再起動 - しかし、私はそれを行う方法を知るために暗号化について十分に知りません。さらに、WinFormsアプリは被制御マシンへの配布が非常に限られているため、手動で各証明書をインストールしたいと考えています。私は暗号化の初心者ですが、スタックしています。 .pfxファイルをマシンにロードし、秘密鍵(私は知っているがユーザーには知らせない)を入力してください。&は永続的に格納されていますか?私は何かを見逃していますか?私はインストールすべき別の証明書ファイル、またはそれを生成する方法はありますか?私は秘密鍵をアクセス可能なままにしたくありません。もし誰かがapp.configを盗むなら、私はそれらを解読できるようにしたくありません。
注:私はRsaProtectedConfigurationProviderとDPAPIProtectedConfigurationProviderについて読んでいます。私それはアズールで動作するので、PKCS12ProtectedConfigurationProviderを使用することを選択した、REF:http://blogs.msdn.com/b/sqlazure/archive/2010/09/07/10058942.aspx