C # создает файл Web.config программно - PullRequest
1 голос
/ 11 января 2012

Я пишу и установщик для приложения ASP.NET, и у меня есть несколько полей данных (строки подключения, SMTP-серверы и т. Д.), Которые я хочу, чтобы установщик строил из пользовательского ввода, шифровал и сохранял вФайл Web.config.У меня проблема в том, что и WebConfigurationManager, и ConfigurationManager предназначены для работы с существующими файлами конфигурации.Как создать новый файл конфигурации и зашифровать его перед сохранением?

1 Ответ

3 голосов
/ 11 января 2012

Я бы рекомендовал начать с базового файла конфигурации, который не содержит требуемых полей, затем с помощью XDocument или WebConfigurationManger добавить информацию о конфигурации и зашифровать ее.

Источник: Шифрование и дешифрование конфиденциальных данных в файлах web.config с использованием Защищенной конфигурации - Часть IV

Код, в случае если содержание отключается:

private void EncryptConfig()
{
    // Open the Web.config file.
    Configuration config = 
        WebConfigurationManager.OpenWebConfiguration("~");
    // Get the connectionStrings section.
    ConnectionStringsSection section =
    config.GetSection("connectionStrings") as ConnectionStringsSection;

    // Toggle encryption.
    if (section.SectionInformation.IsProtected)
    {
        section.SectionInformation.UnprotectSection();
    }
    else
    {
    if (!section.SectionInformation.IsLocked)
    {
        section.SectionInformation
               .ProtectSection("RsaProtectedConfigurationProvider");             

        section.SectionInformation.ForceSave = true;             

        //Save changes to the Web.config file.       
        config.Save(ConfigurationSaveMode.Full);           }
    }
}
...