2009-08-28 36 views
4

共有ホスティング環境のweb.configファイルで接続文字列を暗号化します。共有ホスティングでweb.configを暗号化する

私は主題(http://msdn.microsoft.com/en-us/library/53tyfkaw.aspx)に関するMSDNの記事のほとんどを読んでおり、RSAProtectedConfigurationProviderを使用する必要があると結論づけて、キーコンテナを持つ設定ファイルを共有ホスティングプロバイダにエクスポートできるようにしました。しかし、私がこれを行うと、「RSAキーコンテナを開くことができませんでした」というエラーが表示されます。これは、aspnetアカウントへのアクセスをキーコンテナに許可する必要があるためと考えられますが、これは共有ホストにあるので使用できないaspnet_regiisツールを使用して行われます。

global.asaxのアプリケーション開始時にプログラムで暗号化しようとしましたが、ファイルを保存する際にパーミッションエラーが発生しました - 「設定ファイルの読み込み中にエラーが発生しました:パス 'C:\ Inetpub \ xxx \ YYYの\の3acp98k.tmpが」拒否されます。共有は制限をホスティングしている、私が想定しています。

私は、その共有ホスティング環境としてます。aspnet_regiisツールを実行することはできません。

誰がどのように私はかもしれないとのように任意のアイデアを持っています接続文字列を暗号化しますか?

答えて

1

あなたはweb.configを書き込み可能にするだけで済みます。 IISのユーザーか、ファイル管理者のウェブベースのツールを使用して権限を編集してください。 aspnet_regiisを実行する必要はありません。

1

私は何も答えとしてマークされていないので、私はあなたがこれに対する解決策を得られなかったと仮定します。 唯一のアイデアですが、唯一の問題がの場合は、のアプリケーションでは、設定ファイルへの書き込みアクセス権がありません(ヒント:FTPアカウントに書き込み権限があります)。接続文字列設定を読み取るASPXページを作成し、暗号化されたXml(パスワードで保護された場所に置くこともできます)。

は、その後、あなたがしなければならないすべては、次のとおりです。

  1. アップロード
  2. 暗号化されていないweb.configファイルを作成し、それ
  3. あなたの「表示暗号化されたのconnectionStrings Webページ」
  4. コピーを訪問し、中に暗号化されたデータを貼り付けあなたのローカルweb.configに
  5. 新しい暗号化された設定でweb.configを再度アップロードしてください!
0

暗号化キーを生成し、アプリケーションのフォルダに保存する必要があります。そのキーは、Webサイトが読み取り時に毎回configファイルまたはconfigセクションを暗号化および復号化するために使用されます。デフォルトのプロバイダはRSACriptoServiceProviderです。設定ファイルが暗号化されてアップロードされていても、暗号化キーは提供されていない場合、それだけでそれを暗号解除することはできません。キーは、設定セクションが復号化され、暗号化されるたびに使用されます。

0

aspnet_regiisツールは、-pefオプションと-pdfオプションを使用して暗号化と復号化に使用されます。同じツールを使用して、-pcオプションを使用して暗号化キーを作成し、マシンレベルでキーペアを作成します。

関連する問題