在MS guide之后,我正在尝试加密app.config文件中的整个<connectionString>
部分。程序运行时,我可以打开bin/Debug/MyApp.vshost.exe.config
并看到<connectionString>
已加密。但是,如果我让程序运行,完成并正常退出,则不会将任何内容保存在文件中,就好像它会刷新所有设置一样。
Dim config As Configuration =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
Dim section As ConnectionStringsSection =
DirectCast(config.GetSection("connectionStrings"), ConnectionStringsSection)
If section.SectionInformation.IsProtected Then
'Remove encryption
section.SectionInformation.UnprotectSection()
Else
'Encrypt
section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider")
End If
section.SectionInformation.ForceSave = True
config.Save(ConfigurationSaveMode.Full)
Dim sectionXmlas As String = 'result of encryption
section.SectionInformation.GetRawXml()
答案 0 :(得分:0)
要以编程方式完成此工作,您必须致电
config.refreshsection
对Save的调用将调整物理文件,但在上述调用完成之前,它将被缓存在内存中。