Rob Howard wrote a piece for MSDN Magazine on “Keeping Secrets in ASP.NET 2.0”. The article is a good introduction on how to encrypt configuration data in web.config.
Something I’ve had to do which wasn’t immediately obvious to me was encrypt the identity section of web.config for a specific location. For example, let’s say I don’t want the username and password in the following web.config file to appear in plain text.
From the command line, a first crack at encryption might look like the following …
… except the above command only encrypts the first identity section, not the identity section inside of the <location> tag. The only way to reach the second identity section is to specify a location parameter, which is not available with the –pef switch, but is available with the –pe switch.
The difference between –pef and –pe is subtle. The –pef switch uses a physical directory path to find web.config, while –pe uses a virtual path.
Comments
I have not figured out to encrypt a location specific section within the server level web.config file. How would you specify the location since there is not really a virtual root file?
Any ideas?
Thanks
Better to just put the 'identity' tag within 'system.web' and reference it like this:
aspnet_regiis -pe "system.web/identity" -app "/MySite"
-Tom