Encryption Decryption Connection String for the App.Config File

How to “Encrypt Decrypt” Connection String in “Web.config” Asp.Net C#?

In this post, I am going to share the “How to encryption a connection string of “web.config file in ASP.Net MVC C# using “DataProtectionProviderdata protection section as,

ConfigSection.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
//Step 1:  This below code is use to Encrypt connection string.

namespace EncryptDecrypt_WebConfig
{
    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            //ENCRYPT DECRYPT WEB CONFIG SECTIONS.
            EncryptDecryptWebConfigSettings();          
        }

        /// <summary>
        ///  ENCRYPT DECRYPT WEB CONFIG SECTIONS.
        /// </summary>
        private static void EncryptDecryptWebConfigSettings()
        {
            // This is used to get application configuration.
            Configuration configurations = WebConfigurationManager.OpenWebConfiguration("~");

            // Get connection string of app settings.
            ConnectionStringsSection connSectionString = (ConnectionStringsSection)configurations.GetSection("connectionStrings");
            AppSettingsSection appSettingSection = (AppSettingsSection)configurations.GetSection("appSettings");

            var settingInfo = connSectionString.SectionInformation;
            //This is used to protect multiple sections in web.config
            if (!settingInfo.IsProtected)
            {
                settingInfo.ProtectSection("DataProtectionConfigurationProvider");
                settingInfo.ForceSave = true;
            }
            if (!settingInfo.IsProtected)
            {
                settingInfo.ProtectSection("DataProtectionConfigurationProvider");
                settingInfo.ForceSave = true;
            }

            // Save modified config settings file.
            configurations.Save(ConfigurationSaveMode.Modified);
        }
    }
}



//Step2 : Before Encrypted connection string look like below code.

<connectionStrings>
    <add name="connectionStrings" connectionString="Data Source=.; Initial Catalog=TestDB;User ID=sa;Password=pwd" />
</connectionStrings>


//Step 3: After Encrypted connection string look like below code

  <connectionStrings configProtectionProvider="DataProtectionConfigurationProvider">
    <EncryptedData>
      <CipherData>     <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA3KU9jdKx/Uaoa3JA+RE11wQAAAACAAAAAAAQZgAAAAEAACAAAACYC3M8esjUFKf448qYmP5u7mQz0VDApy+jBXwUbGf9WwAAAAAOgAAAAAIAACAAAAAL+ZLNTuvDLGLG2qlYpgbpBhnW+a8JsJNdSA+U1lz/drABAAAc/1SULZLGOL6ke7q1xLzBCyyCFmJXNz1Gb2eLDF1CbpzMDF4FObDBhYfhRMxu6SmaGgPIUtWUkQZLIkuKi5sJXzvLVnxO6c6OzQpiWR0bSrQe55xqyWDEf9LhPpXzjKTH/IFFj8IHCc8ojBoRIQzdzenKg3R7wewmuee7IpdBMbFZZtofHA3wYV4x2mmyLyfK4VahEZUhslsb+bkqFss18cSp7tY++2jCUmVS7U9rm+qv2tCsN+AfyTD1eyx7tzQsJN2tlNy2F86kjiCA7KFl/Bsunt4O8Ig935YfvmV/UK1fl33bZDof/8HNbzc3qKG+tz//0ccyhBbapb3gPre4ppCiITeVBysQF+fCl98AGFKZTGaL9NIdHTEkw+Q3PoD8LEO1LeuifEXqi2/Us+/YNb5CF4NgXc1XY86Q+12hh2s711RGtBRkmQFeKt7R/ZGIP+zxgkY7OemJhOARBN44uMn6DkdpxjloeN7FDdB6aXUnoRmkDjYxIkprqYRrdsVr4REo46SPge7qGT1ox1zafJuUxcQvL8xawCi3PrrkAyuC6jKjuwlxgGO1OgpBvDVAAAAAOMoxt1HPGzwdrrlqZJiV14ZzwZMuBwBy3882NGEwqKqU5yKcbRCEFCEmkpapyrTEJ3EaQVqWkgjhOJb4o/aovw==
</CipherValue>
      </CipherData>
    </EncryptedData>
  </connectionStrings>

//The ASP.Net code update code automatically after encrypted connection string. 
//You can see the above code.


//Step 4 : You can easily access connection string in your application i.e.

string conn = ConfigurationManager.ConnectionStrings["connectionString"].ToString();

Reference links,

 I hope you are enjoying with this post! Please share with you friends. Thank you!!
ANIL SINGH

Anil Singh is an author, tech blogger, and software programmer. Book writing, tech blogging is something do extra and Anil love doing it. For more detail, kindly refer to this link..

My Tech Blog - https://www.code-sample.com/
My Books - Book 1 and Book 2

www.code-sample.com/. Powered by Blogger.
^