2017-10-04 1 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 파일을 해독 할 수 없습니다.

aspnet_regiis를 사용하여 키 컨테이너 (link) 및 (link)를 만들고 내보내는 것이 좋지만 어쩌면 내가 잘못하고있는 것일 수도 있습니다. 내 추측은 aspnet_regiis를 사용하여 파일을 암호화하거나 파일의 암호를 해독하지 않기 때문에 내가 붙어 있기 때문입니다. aspnet_regiis 도구와 명령 줄을 사용하지 않고이 작업을 수행 할 수 있습니까?

많은 정보가 web.config와 app.config에서 더 많이 발생합니다. 다시 말하지만, 이것은 MVVM을 사용하는 C#/WPF 응용 프로그램을위한 것입니다.

맞춤 암호화 (맞춤 데이터 제공 업체)도보고 있었지만, 필자가 본 모든 예는 web.config (link)입니다.

답변

관련 문제