You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4 to create a Windows Forms
application. You plan to deploy the application to several shared client computers. You write the
following code segment. (Line numbers are included for reference only.)
01Configuration config = ConfigurationManager.OpenExeConfiguration(exeConfigName);
02
03config.Save();
04…
You need to encrypt the connection string stored in the .config file.
Which code segment should you insert at line 02?
A.
ConnectionStringsSection section = config.GetSection(“connectionString”) as
ConnectionStringsSection;
section.SectionInformation.ProtectSection(“DataProtectionConfigurationProvider”);
B.
ConnectionStringsSection section = config.GetSection(“connectionStrings”) as
ConnectionStringsSection;
section.SectionInformation.ProtectSection(“DataProtectionConfigurationProvider”);
C.
ConnectionStringsSection section = config.GetSection(“connectionString”) as
ConnectionStringsSection;
section.SectionInformation.ProtectSection(“RsaProtectedConfigurationProvider”);
D.
ConnectionStringsSection section = config.GetSection(“connectionStrings”) as
ConnectionStringsSection;
section.SectionInformation.ProtectSection(“RsaProtectedConfigurationProvider”);
Explanation:
You encrypt and decrypt the contents of a Web.config file by using System.Configuration .
DPAPIProtectedConfigurationProvider,
which uses the Windows Data Protection API (DPAPI) to encrypt and decrypt data, or
System.Configuration.
RSAProtectedConfigurationProvider, which uses the RSA encryption algorithm to encrypt and
decrypt data. When you use the same encrypted configuration file on many computers in a Web
farm, only System.Configuration.RSAProtectedConfigurationProvider enables you to export the
encryption keys that encrypt the data and import them on another server. This is the default setting.
CHAPTER 2 ADO.NET Connected Classes
Lesson 1: Connecting to the Data Store
Storing Encrypted Connection Strings in Web Applications (page 76)
Securing Connection Strings
(http://msdn.microsoft.com/en-us/library/89211k9b(v=vs.80).aspx)