2017-10-04 13 views
1

私は多くの読書をして、WPF App.Configファイルのセクションを暗号化しようとしています。私はデフォルトのセクションではなく、カスタムセクションを使用しています。私はユーザーが.configファイルを指定し、キーを更新するためにこのファイルを読み込むアプリケーションを持っています。App.Configセクションを暗号化して複数のマシンに展開する

var configMap = new ExeConfigurationFileMap { ExeConfigFilename = this.FileName }; 
var config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None); 
var configSection = config.GetSection(Section); 

if (!configSection.SectionInformation.IsProtected) 
    if (!configSection.ElementInformation.IsLocked) 
    { 
      configSection.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider"); 
      configSection.SectionInformation.ForceSave = true; 
      config.Save(ConfigurationSaveMode.Full); 
    } 

および復号化するために:私は、次のコードを使用しています私のファイルのセクションを復号化し、暗号化するために

var configMap = new ExeConfigurationFileMap { ExeConfigFilename = this.FileName }; 
var config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None); 
var configSection = config.GetSection(Section); 

if (configSection.SectionInformation.IsProtected) 
{ 
    configSection.SectionInformation.UnprotectSection(); 
    configSection.SectionInformation.ForceSave = true; 
    config.Save(ConfigurationSaveMode.Full); 
} 

私が直面しています、問題があれば、私はファイルを持っているということですマシンAで暗号化されたファイルをマシンBに置くと、マシンAで暗号化が行われたため、.configファイルを復号化できません。

キーコンテナ(link)と(link)を作成してエクスポートするためにaspnet_regiisを使用することをお勧めするいくつかの記事がありますが、多分私は何か間違っています。私の推測は、ファイルを暗号化したり、ファイルを解読するためにaspnet_regiisを使用していないため、私は固まってしまいます。 aspnet_regiisツールとコマンドラインを使用せずにこれを行う方法はありますか?

周囲の多くの情報は、web.configとapp.configの関係になります。ここでも、これはMVVMを使用するC#/ WPFアプリケーション用です。

カスタム暗号化(カスタムデータプロバイダ)も見ていましたが、私が見たすべての例はweb.config(link)です。

答えて

関連する問題