2015-03-24 2 views
0

После MS guide, я пытаюсь зашифровать весь раздел <connectionString> в файле app.config. Пока программа запущена, я могу открыть bin/Debug/MyApp.vshost.exe.config и увидеть, что <connectionString> зашифрован. Однако, если я запускаю программу, заканчиваю и выхожу нормально, ничего не сохраняется в файле, как если бы она сбрасывала все настройки.Раздел <connectionString> не зашифрован в app.config

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

Вы должны вызвать конфигурацию config.refreshsection, чтобы сделать эту работу – Paul

ответ

0

Чтобы сделать эту работу Программным, вы должны вызвать

config.refreshsection 

Вызов, чтобы сохранить отрегулирует физический файл, но он будет сохраняться в памяти до тех пор, выше вызов выполняется.

+0

Только что попробовал, в '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' https://msdn.microsoft.com/en-us/library/system .configuration.configuration% 28v = vs.110% 29.aspx – newprint

+2

'RefreshSection' является общей функцией класса' ConfigurationManager'. Вызовите 'ConfigurationManager.RefreshSection (sectionName)' с именем раздела, которое вы хотите обновить. – theduck

+0

@theduck 'ConfigurationManager.RefreshSection (" connectionStrings ")' ничего не делает – newprint

Смежные вопросы