Monday, June 27, 2011

Encrypting web.config Sections

1. First, add following to web.config within the container



---------------------BEGIN:  configProtectedData ---------------------
     <configprotecteddata>
       <providers>
          <add keycontainername="MY_KEYS" name="MY_PROVIDER" type="System.Configuration.RsaProtectedConfigurationProvider,
                    System.Configuration, Version=2.0.0.0,
                    Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a,
                    processorArchitecture=MSIL" usemachinecontainer="true">
          </add>
       </providers>
    </configprotecteddata>
---------------------END:  configProtectedData ---------------------




2. Below is an example .bat or .cmd file for encrypting sensitive sections of the web.config for a given .NET web application. Change the {PATH} to the physical path to the web application's folder.

---------------------BEGIN:  encrypt.cmd ---------------------
@echo off

REM *********************************************************
REM ** APP_PATH
REM ** Change {PATH} below to path of physical location where
REM ** application is installed
REM **
REM ** ASP_PATH
REM ** Location of ASP.NET framework
REM *********************************************************
SET APP_PATH="{PATH}"
SET ASP_PATH=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe
SET ASP_OPT=-pef
SET ASP_PROV="MY_PROVIDER"

%ASP_PATH% %ASP_OPT% "connectionStrings"

%APP_PATH% -prov %ASP_PROV%

pause
---------------------END:  encrypt.cmd ---------------------
A complete walkthrough for this, including information on key stores is available here:

http://msdn.microsoft.com/en-us/library/2w117ede.aspx

No comments:

Post a Comment