サーバーにアクセスできないため、コマンドを実行して、コードを使用して web.config のセクションを暗号化する必要があります。これを行うには、単純な Web ページを作成し、ページの読み込み時またはボタンのクリック時にそれを実行します。以下は、実行する必要があるコード ブロックです。Microsoft から取得したソース ( http://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.protectsection.aspx )からわずかに変更しただけです。ただし...このコードは実際には機能しませんでした。コードが正しくないわけではありませんが、私のアカウントには Rsa キー ストアへのアクセス許可がないため、結果が異なる場合があります。これが機能しない場合は、オプション 2 を読み進めてください。
' Get the current configuration file.'
Dim config As System.Configuration.Configuration = Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Nothing)
' Get the section.'
Dim section As AppSettingsSection = CType(config.GetSection("appSettings"), AppSettingsSection)
' Protect (encrypt) the section.'
section.SectionInformation.ProtectSection("RSAProtectedConfigurationProvider")
' Save the encrypted section.'
section.SectionInformation.ForceSave = True
config.Save(ConfigurationSaveMode.Full)
クレジット: Need Encrypted 接続文字列と web.config の stmp 情報を介して、コードとのリンクを見つけました。
オプション 2: セキュリティ上の理由から、マシン キーを引き続き使用したいので、誰かが web.config ファイルをダウンロードできたとしても、設定を解読することはできません。これを行う 1 つの方法は、手動でマシン キーを使用してすべての設定を暗号化し、それらを使用する必要があるたびに復号化することです。または、アプリの起動ごとにキャッシュに保存することもできます。
アプリ キーの値を暗号化および復号化するには、次のようなコードを使用できます。
Dim encryptedString As String = Convert.ToBase64String(ProtectedData.Protect(System.Text.UTF8Encoding.UTF32.GetBytes("Testing"), Nothing, DataProtectionScope.LocalMachine))
Dim decryptedString As String = System.Text.UTF8Encoding.UTF32.GetString(ProtectedData.Unprotect(Convert.FromBase64String(encryptedString), Nothing, DataProtectionScope.LocalMachine))
Response.Write(encryptedString + " - " + decryptedString)