Click here to Skip to main content
13,256,260 members (48,733 online)
Click here to Skip to main content
Add your own
alternative version


19 bookmarked
Posted 25 Apr 2011

Encrypt .NET Configuration File

, 25 Apr 2011
Rate this:
Please Sign up or sign in to vote.
How to encrypt .NET configuration file

Under some scenarios, developers want to encrypt some sections inside app.config or web.config file. This article How To: Encrypt Configuration Sections in ASP.NET 2.0 Using RSA describes how to do so clearly, Scott Guthrie also posted one: Encrypting Web.Config Values in ASP.NET 2.0.

However, in the posts above, they use aspnet_regiis.exe and it seems it doesn’t directly support app.config, if we want to encrypt app.config for Windows Form or WPF applications While I tried use it to encrypt my app.config file, it generates a web.config which means my Winform definitely can’t use it, even if I copy the encrypted appSettings section from this generated web.config to my own app.config (ConfigurationManager.AppSettings[EncryptedKeyName] is null after I did that).

Config Encrypt

Encrypted WebConfig

After several minutes of Google search and testing, I found the code below is simple and very straight forward to achieve this:

Configuration config = ConfigurationManager.OpenExeConfiguration(

SectionInformation appSettingsSecInfo = config.GetSection(
if (!appSettingsSecInfo.IsProtected)
    Console.WriteLine("The configuration file has NOT been protected!");

    // Encrypt this section by using security provider 
    // (RsaProtectedConfigurationProvider or DpapiProtectedConfigurationProvider).
    appSettingsSecInfo.ForceSave = true;


This code snippet will do the encryption job and works for both app.config/web.config. Here is the MSDN definition page for SectionInformation.ProtectSection.



This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Wayne Ye
Software Developer (Senior) SAP Labs Shanghai
China China
Wayne is a software developer, Tech Lead and also a geek. He has more than 6 years' experience in Web development(server: ASP.NET (MVC), Web Service, IIS; Client: HTML/CSS/JavaScript/jQuery/AJAX), Windows development (Winform, Windows Service, WPF/Silverlight, Win32 API and WMI) and SQL Server. Deep understanding of GOF Design Patterns, S.O.L.i.D principle, MVC, MVVM, Domain Driven Design, SOA, REST and AOP.

Wayne's Geek Life

Infinite passion on programming!

You may also be interested in...

Comments and Discussions

QuestionNice Article Pin
xs2mayank13-Oct-15 2:16
memberxs2mayank13-Oct-15 2:16 
QuestionDeploy encrypted config to other machines Pin
Member 141997020-Jan-13 11:20
memberMember 141997020-Jan-13 11:20 
GeneralMy vote of 4 Pin
Crawfis29-Dec-11 6:41
memberCrawfis29-Dec-11 6:41 
GeneralOriginal Reference Pin
MEhran.NET3-May-11 0:17
memberMEhran.NET3-May-11 0:17 
GeneralRe: Original Reference Pin
Wayne Ye4-May-11 2:17
memberWayne Ye4-May-11 2:17 
GeneralRe: Original Reference Pin
Crawfis29-Dec-11 6:41
memberCrawfis29-Dec-11 6:41 
GeneralMy vote of 1 Pin
MEhran.NET3-May-11 0:14
memberMEhran.NET3-May-11 0:14 
GeneralExcellent. Pin
Rene Pilon26-Apr-11 12:08
memberRene Pilon26-Apr-11 12:08 
GeneralRe: Excellent. Pin
Wayne Ye26-Apr-11 17:04
memberWayne Ye26-Apr-11 17:04 
GeneralMy vote of 5 Pin
Oshtri Deka26-Apr-11 4:24
memberOshtri Deka26-Apr-11 4:24 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.171114.1 | Last Updated 25 Apr 2011
Article Copyright 2011 by Wayne Ye
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid