ProtectedConfigurationProvider Class
Is the base class to create providers for encrypting and decrypting protected-configuration data.
System.Configuration.Provider::ProviderBase
System.Configuration::ProtectedConfigurationProvider
System.Configuration::DpapiProtectedConfigurationProvider
System.Configuration::RsaProtectedConfigurationProvider
Assembly: System.Configuration (in System.Configuration.dll)
The ProtectedConfigurationProvider type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | ProtectedConfigurationProvider | Initializes a new instance of the ProtectedConfigurationProvider class using default settings. |
| Name | Description | |
|---|---|---|
![]() | Description | Gets a brief, friendly description suitable for display in administrative tools or other user interfaces (UIs). (Inherited from ProviderBase.) |
![]() | Name | Gets the friendly name used to refer to the provider during configuration. (Inherited from ProviderBase.) |
| Name | Description | |
|---|---|---|
![]() | Decrypt | Decrypts the passed XmlNode object from a configuration file. |
![]() | Encrypt | Encrypts the passed XmlNode object from a configuration file. |
![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | Initialize | Initializes the provider. (Inherited from ProviderBase.) |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
You can encrypt sections of a configuration file to protect sensitive information used by your application. This improves security by making it difficult for unauthorized access even if an attacker gains access to your configuration file.
The .NET Framework includes two protected configuration providers that can be used to encrypt sections of a configuration file. The RsaProtectedConfigurationProvider class uses the RSACryptoServiceProvider to encrypt configuration sections. The DpapiProtectedConfigurationProvider class uses the Windows Data Protection API (DPAPI) to encrypt configuration sections.
You might have a requirement to encrypt sensitive information using an algorithm other than the RSA or DPAPI providers. In this case, you can build your own custom protected-configuration provider. The ProtectedConfigurationProvider is an abstract base class that you must inherit from to create your own protected-configuration provider.
Whether you use a standard or a custom provider, you must ensure that it is configured with the add element in the providers section of the configProtectedData configuration section. (See next example.)
For details, see Implementing a Protected Configuration Provider.
Note |
|---|
When ASP.NET encounters encrypted configuration data, it performs decryption transparently using the configured provider. No action is required on your side other than making sure that you configure the required provider. |
| Topic | Location |
|---|---|
| Implementing a Protected Configuration Provider | Building ASP .NET Web Applications |
| Implementing a Protected Configuration Provider | Building ASP .NET Web Applications |
The following example shows how to implement a custom ProtectedConfigurationProvider.
To be able to configure this provider, as shown in the next configuration excerpt, you must install it in the Global Assembly Cache (GAC). Refer to Implementing a Protected Configuration Provider for more information.
The following example shows how to use the previous custom ProtectedConfigurationProvider.
The following is an excerpt of the configuration file used by the above examples.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configProtectedData >
<providers>
<clear />
<add keyContainerName="pcKey.txt"
name="TripleDESProtectedConfigurationProvider"
type="Samples.Aspnet.TripleDESProtectedConfigurationProvider, protectedconfigurationproviderlib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=79e01ae0f5cfc66f, processorArchitecture=MSIL" />
</providers>
</configProtectedData >
<connectionStrings>
<add name="NorthwindConnectionString"
connectionString="Data Source=webnetue2;Initial Catalog=Northwind;User ID=aspnet_test;Password=test"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
