Error using RSAProtectedConfigurationProvider

1

I am making an example using RSAProtectedConfigurationProvider and it has generated an error, I am not able to solve the problem.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Configuration;
using System.Web.Security;
using System.Configuration;


namespace CriptografiaMD5
{
    public class cifrawebconfig
    {

        // Proteja a seção connectionStrings.
        private static void ProtegerConfiguration()
        {
            // Obter o arquivo de configuração do aplicativo.
            System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

            // Define o nome do provedor de RSA.
            string provider = "RsaProtectedConfigurationProvider";


            ConfigurationSection connStrings = config.ConnectionStrings;

            if (connStrings != null)
            {
                if (!connStrings.SectionInformation.IsProtected)
                {
                    if (!connStrings.ElementInformation.IsLocked)
                    {
                        // Proteja a seção.
                        connStrings.SectionInformation.ProtectSection(provider);

                        connStrings.SectionInformation.ForceSave = true;
                        config.Save(ConfigurationSaveMode.Full);

                        Console.WriteLine("Seção {0} está agora protegida por {1}",
                            connStrings.SectionInformation.Name,
                            connStrings.SectionInformation.ProtectionProvider.Name);
                    }
                    else
                        Console.WriteLine(
                             "Não é possível proteger, section {0} está bloqueado",
                             connStrings.SectionInformation.Name);
                }
                else
                    Console.WriteLine(
                        "Seção {0} já está protegido por {1}",
                        connStrings.SectionInformation.Name,
                        connStrings.SectionInformation.ProtectionProvider.Name);
            }
            else
                Console.WriteLine("Não é possível obter a seção {0}",
                    connStrings.SectionInformation.Name);

        }

        // Desproteger a seção connectionStrings. 
        private static void DesprotegerConfiguration()
        {

            // Obter o arquivo de configuração do aplicativo.
            System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

            // Obter seção para desproteger.
            ConfigurationSection connStrings = config.ConnectionStrings;

            if (connStrings != null)
            {
                if (connStrings.SectionInformation.IsProtected)
                {
                    if (!connStrings.ElementInformation.IsLocked)
                    {
                        // Desproteger a seção.
                        connStrings.SectionInformation.UnprotectSection();

                        connStrings.SectionInformation.ForceSave = true;
                        config.Save(ConfigurationSaveMode.Full);

                        Console.WriteLine("Seção {0} é agora desprotegido.",
                            connStrings.SectionInformation.Name);

                    }
                    else
                        Console.WriteLine(
                             "Não pode desproteger, section {0} está bloqueado",
                             connStrings.SectionInformation.Name);
                }
                else
                    Console.WriteLine(
                        "Seção {0} já está desprotegida.",
                        connStrings.SectionInformation.Name);

            }
            else
                Console.WriteLine("Não é possível obter a seção {0}",
                    connStrings.SectionInformation.Name);

        }


    }


}
    
asked by anonymous 17.10.2014 / 21:36

1 answer

1

To call functions:

btnCripto_Click(object sender, EventArgs e) { 
    new cifrawebconfig().ProtegerConfiguration();
    // new cifrawebconfig().DesprotegerConfiguration();
}

They can be called in Global.asax , Filter , Controller ...

    
17.10.2014 / 21:53