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

Hey! I'm Anil Singh. I author this blog. I'm Active Blogger, Programmer. I love learning new technologies, programming, blogging and participating the forum discussions more...
My Blogs - http://www.code-sample.com and http://www.code-sample.xyz
My Books - Google Amazon and Flipkart Book Store!

You Might Also Like
Post a Comment
www.code-sample.com/. Powered by Blogger.
ASK Questions
SQL Server NodeJs TypeScript JavaScript Angular SQL Server My Book