RsaProtectedConfigurationProvider RsaProtectedConfigurationProvider RsaProtectedConfigurationProvider RsaProtectedConfigurationProvider Class

Définition

Fournit une instance ProtectedConfigurationProvider qui utilise le chiffrement RSA pour chiffrer et déchiffrer les données de configuration. Provides a ProtectedConfigurationProvider instance that uses RSA encryption to encrypt and decrypt configuration data.

public ref class RsaProtectedConfigurationProvider sealed : System::Configuration::ProtectedConfigurationProvider
public sealed class RsaProtectedConfigurationProvider : System.Configuration.ProtectedConfigurationProvider
type RsaProtectedConfigurationProvider = class
    inherit ProtectedConfigurationProvider
Public NotInheritable Class RsaProtectedConfigurationProvider
Inherits ProtectedConfigurationProvider
Héritage
RsaProtectedConfigurationProviderRsaProtectedConfigurationProviderRsaProtectedConfigurationProviderRsaProtectedConfigurationProvider

Exemples

L’exemple de code suivant montre comment utiliser la norme RsaProtectedConfigurationProvider pour protéger ou déprotéger une section de configuration.The following code example shows how to use the standard RsaProtectedConfigurationProvider to protect or unprotect a configuration section.

using System;
using System.Configuration;

public class UsingRsaProtectedConfigurationProvider
{

    // Protect the connectionStrings section.
    private static void ProtectConfiguration()
    {

        // Get the application configuration file.
        System.Configuration.Configuration config =
                ConfigurationManager.OpenExeConfiguration(
                ConfigurationUserLevel.None);

        // Define the Rsa provider name.
        string provider =
            "RsaProtectedConfigurationProvider";

        // Get the section to protect.
        ConfigurationSection connStrings =
            config.ConnectionStrings;

        if (connStrings != null)
        {
            if (!connStrings.SectionInformation.IsProtected)
            {
                if (!connStrings.ElementInformation.IsLocked)
                {
                    // Protect the section.
                    connStrings.SectionInformation.ProtectSection(provider);

                    connStrings.SectionInformation.ForceSave = true;
                    config.Save(ConfigurationSaveMode.Full);

                    Console.WriteLine("Section {0} is now protected by {1}",
                        connStrings.SectionInformation.Name,
                        connStrings.SectionInformation.ProtectionProvider.Name);

                }
                else
                    Console.WriteLine(
                         "Can't protect, section {0} is locked",
                         connStrings.SectionInformation.Name);
            }
            else
                Console.WriteLine(
                    "Section {0} is already protected by {1}",
                    connStrings.SectionInformation.Name,
                    connStrings.SectionInformation.ProtectionProvider.Name);

        }
        else
            Console.WriteLine("Can't get the section {0}",
                connStrings.SectionInformation.Name);
              
    }


    // Unprotect the connectionStrings section.
    private static void UnProtectConfiguration()
    {

        // Get the application configuration file.
        System.Configuration.Configuration config =
                ConfigurationManager.OpenExeConfiguration(
                ConfigurationUserLevel.None);

        // Get the section to unprotect.
        ConfigurationSection connStrings =
            config.ConnectionStrings;

        if (connStrings != null)
        {
            if (connStrings.SectionInformation.IsProtected)
            {
                if (!connStrings.ElementInformation.IsLocked)
                {
                    // Unprotect the section.
                    connStrings.SectionInformation.UnprotectSection();

                    connStrings.SectionInformation.ForceSave = true;
                    config.Save(ConfigurationSaveMode.Full);

                    Console.WriteLine("Section {0} is now unprotected.",
                        connStrings.SectionInformation.Name);

                }
                else
                    Console.WriteLine(
                         "Can't unprotect, section {0} is locked",
                         connStrings.SectionInformation.Name);
            }
            else
                Console.WriteLine(
                    "Section {0} is already unprotected.",
                    connStrings.SectionInformation.Name);
                
        }
        else
            Console.WriteLine("Can't get the section {0}",
                connStrings.SectionInformation.Name);

    }


    public static void Main(string[] args)
    {

        string selection = string.Empty;

        if (args.Length == 0)
        {
            Console.WriteLine(
                "Select protect or unprotect");
            return;
        }

        selection = args[0].ToLower();

        switch (selection)
        {
            case "protect":
                ProtectConfiguration();
                break;

            case "unprotect":
                UnProtectConfiguration();
                break;
 
            default:
                Console.WriteLine("Unknown selection");
                break;
        }

        Console.Read();
            
    }


}

Imports System
Imports System.Configuration


Public Class UsingRsaProtectedConfigurationProvider
   
   
   ' Protect the connectionStrings section.
   Private Shared Sub ProtectConfiguration()
      
      ' Get the application configuration file.
        Dim config As System.Configuration.Configuration = _
        ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
      
      ' Define the Rsa provider name.
        Dim provider As String = _
        "RsaProtectedConfigurationProvider"
      
      ' Get the section to protect.
        Dim connStrings As ConfigurationSection = _
        config.ConnectionStrings
      
      If Not (connStrings Is Nothing) Then
         If Not connStrings.SectionInformation.IsProtected Then
            If Not connStrings.ElementInformation.IsLocked Then
                    ' Protect the section.

                    connStrings.SectionInformation.ProtectSection(provider)


                    connStrings.SectionInformation.ForceSave = True

                    config.Save(ConfigurationSaveMode.Full)

                    Console.WriteLine( _
                    "Section {0} is now protected by {1}", _
                    connStrings.SectionInformation.Name, _
                    connStrings.SectionInformation.ProtectionProvider.Name)

                Else
                    Console.WriteLine( _
                    "Can't protect, section {0} is locked", _
                    connStrings.SectionInformation.Name)
                End If
         Else
                Console.WriteLine( _
                "Section {0} is already protected by {1}", _
                connStrings.SectionInformation.Name, _
                connStrings.SectionInformation.ProtectionProvider.Name)
         End If
      
      Else
            Console.WriteLine( _
            "Can't get the section {0}", _
            connStrings.SectionInformation.Name)
      End If
   End Sub 'ProtectConfiguration
    
   
   
   ' Unprotect the connectionStrings section.
   Private Shared Sub UnProtectConfiguration()
      
      ' Get the application configuration file.
        Dim config As System.Configuration.Configuration = _
        ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
      
      ' Get the section to unprotect.
        Dim connStrings As ConfigurationSection = _
        config.ConnectionStrings
      
      If Not (connStrings Is Nothing) Then
         If connStrings.SectionInformation.IsProtected Then
            If Not connStrings.ElementInformation.IsLocked Then
               ' Unprotect the section.
               connStrings.SectionInformation.UnprotectSection()
               
               connStrings.SectionInformation.ForceSave = True
               config.Save(ConfigurationSaveMode.Full)
               
                    Console.WriteLine( _
                    "Section {0} is now unprotected.", _
                    connStrings.SectionInformation.Name)
            
            Else
                    Console.WriteLine( _
                    "Can't unprotect, section {0} is locked", _
                    connStrings.SectionInformation.Name)
            End If
         Else
                Console.WriteLine( _
                "Section {0} is already unprotected.", _
                connStrings.SectionInformation.Name)
         End If
      
      Else
            Console.WriteLine( _
            "Can't get the section {0}", _
            connStrings.SectionInformation.Name)
      End If
   End Sub 'UnProtectConfiguration
   
   
   
    Public Shared Sub Main(ByVal args() As String)

        Dim selection As String = String.Empty

        If args.Length = 0 Then
            Console.WriteLine( _
            "Select protect or unprotect")
            Return
        End If

        selection = args(0).ToLower()

        Select Case selection
            Case "protect"
                ProtectConfiguration()

            Case "unprotect"
                UnProtectConfiguration()

            Case Else
                Console.WriteLine( _
                "Unknown selection")
        End Select

        Console.Read()
    End Sub 'Main

End Class 'UsingRsaProtectedConfigurationProvider

L’exemple suivant montre un extrait à partir d’un fichier de configuration après chiffrement.The following example shows an excerpt from a configuration file after encryption.

<?xml version="1.0" encoding="utf-8"?>  
<configuration>  
  <connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">  
    <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"  
        xmlns="http://www.w3.org/2001/04/xmlenc#">  
      <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />  
      <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">  
        <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">  
          <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />  
          <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">  
            <KeyName>Rsa Key</KeyName>  
          </KeyInfo>  
          <CipherData>  
            <CipherValue>B702tRDVHJjC3CYXt7I0ucCDjdht/Vyk/DdUhwQyt7vepSD85dwCP8ox9Y1BUdjajFeTFfFBsGypbli5HPGRYamQdrVkPo07bBBXNT5H02qxREguGUU4iDtV1Xp8BLVZjQMV4ZgP6Wbctw2xRvPC7GvKHLI4fUN/Je5LmutsijA=</CipherValue>  
          </CipherData>  
        </EncryptedKey>  
      </KeyInfo>  
      <CipherData>  
        <CipherValue>ME+XJA2TAj3QN3yT4pJq3sRArC0i7Cz3Da71BkaRe9QNfuVuUjcv0jeGUN4wDdOAZ7LPq6UpVrpirY3kQcALDvPJ5nKxk++Mw75rjtIO8eh2goTY9rCK6zanfzaDshFy7IqItpvs/y2kmij25nM3ury6uO0hCf0UbEL1mbT2jXDqvcrHZUobO1Ef6bygBZ/8HpU+VfF9CTCob/BBE9zUkK37EQhcduwsnzBvDblYbF/Rd+F4lxAkZnecGLfCZjOzJB4xH1a0vvWtPR7zNwL/7I0uHzQjyMdWrkBnotMjoR70R7NELBotCogWO0MBimncKigdR3dTTdrCd72a7UJ4LMlEQaZXGIJp4PIg6qVDHII=</CipherValue>  
      </CipherData>  
    </EncryptedData>  
  </connectionStrings>  
</configuration>  

Remarques

Le RsaProtectedConfigurationProvider classe vous permet de chiffrer les informations sensibles stockées dans un fichier de configuration, qui vous aide à protéger contre tout accès non autorisé.The RsaProtectedConfigurationProvider class gives you a way to encrypt sensitive information stored in a configuration file, which helps protect it from unauthorized access. Vous utilisez la fonction intégrée RsaProtectedConfigurationProvider instance en déclarant le fournisseur et en créant des paramètres appropriés dans le fichier de configuration au lieu de créer une instance de cette classe, comme indiqué dans l’exemple plus loin dans cette rubrique.You use the built-in RsaProtectedConfigurationProvider instance by declaring the provider and making appropriate settings in the configuration file instead of creating an instance of this class, as shown in the example later in this topic.

Le RsaProtectedConfigurationProvider objet utilise les fonctions de chiffrement fournies par RSA classe pour chiffrer et déchiffrer les sections de configuration.The RsaProtectedConfigurationProvider object uses the cryptography functions provided by RSA class to encrypt and decrypt configuration sections.

Note

Pour qu’ASP.NET puisse déchiffrer les informations chiffrées dans votre fichier de configuration, l’identité de votre application ASP.NET doit avoir un accès en lecture à la clé de chiffrement utilisée pour chiffrer et déchiffrer les données de configuration.Before ASP.NET can decrypt encrypted information in your configuration file, the identity of your ASP.NET application must have read access to the encryption key used to encrypt and decrypt the configuration data. Pour plus d’informations, consultez procédure pas à pas : chiffrement de Configuration d’informations à l’aide de la Configuration protégée.For more information, see Walkthrough: Encrypting Configuration Information Using Protected Configuration.

Constructeurs

RsaProtectedConfigurationProvider() RsaProtectedConfigurationProvider() RsaProtectedConfigurationProvider() RsaProtectedConfigurationProvider()

Initialise une nouvelle instance de la classe RsaProtectedConfigurationProvider. Initializes a new instance of the RsaProtectedConfigurationProvider class.

Propriétés

CspProviderName CspProviderName CspProviderName CspProviderName

Obtient le nom du fournisseur de services de chiffrement (CPS) d'API de chiffrement Windows. Gets the name of the Windows cryptography API (crypto API) cryptographic service provider (CSP).

Description Description Description Description

Obtient une description brève et conviviale qui peut s'afficher dans les outils d'administration ou d'autres interfaces utilisateur. Gets a brief, friendly description suitable for display in administrative tools or other user interfaces (UIs).

(Inherited from ProviderBase)
KeyContainerName KeyContainerName KeyContainerName KeyContainerName

Obtient le nom du conteneur de clé. Gets the name of the key container.

Name Name Name Name

Obtient le nom convivial qui référence le fournisseur au cours de la configuration. Gets the friendly name used to refer to the provider during configuration.

(Inherited from ProviderBase)
RsaPublicKey RsaPublicKey RsaPublicKey RsaPublicKey

Obtient la clé publique utilisée par le fournisseur. Gets the public key used by the provider.

UseFIPS UseFIPS UseFIPS UseFIPS

Obtient une valeur indiquant si le fournisseur utilise FIPS. Gets a value indicating whether the provider uses FIPS.

UseMachineContainer UseMachineContainer UseMachineContainer UseMachineContainer

Obtient une valeur indiquant si l'objet RsaProtectedConfigurationProvider utilise le conteneur de clé d'ordinateur. Gets a value that indicates whether the RsaProtectedConfigurationProvider object is using the machine key container.

UseOAEP UseOAEP UseOAEP UseOAEP

Obtient une valeur indiquant si le fournisseur utilise des données d'échange de clé OAEP (Optimal Asymmetric Encryption Padding). Gets a value that indicates whether the provider is using Optimal Asymmetric Encryption Padding (OAEP) key exchange data.

Méthodes

AddKey(Int32, Boolean) AddKey(Int32, Boolean) AddKey(Int32, Boolean) AddKey(Int32, Boolean)

Ajoute une clé au conteneur de clé RSA. Adds a key to the RSA key container.

Decrypt(XmlNode) Decrypt(XmlNode) Decrypt(XmlNode) Decrypt(XmlNode)

Déchiffre le nœud XML qui lui est passé. Decrypts the XML node passed to it.

DeleteKey() DeleteKey() DeleteKey() DeleteKey()

Supprime une clé du conteneur de clé RSA. Removes a key from the RSA key container.

Encrypt(XmlNode) Encrypt(XmlNode) Encrypt(XmlNode) Encrypt(XmlNode)

Chiffre le nœud XML qui lui est passé. Encrypts the XML node passed to it.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel. Determines whether the specified object is equal to the current object.

(Inherited from Object)
ExportKey(String, Boolean) ExportKey(String, Boolean) ExportKey(String, Boolean) ExportKey(String, Boolean)

Exporte une clé RSA à partir du conteneur de clé. Exports an RSA key from the key container.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fait office de fonction de hachage par défaut. Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtient le Type de l'instance actuelle. Gets the Type of the current instance.

(Inherited from Object)
ImportKey(String, Boolean) ImportKey(String, Boolean) ImportKey(String, Boolean) ImportKey(String, Boolean)

Importe une clé RSA dans le conteneur de clé. Imports an RSA key into the key container.

Initialize(String, NameValueCollection) Initialize(String, NameValueCollection) Initialize(String, NameValueCollection) Initialize(String, NameValueCollection)

Initialise le fournisseur avec les paramètres par défaut. Initializes the provider with default settings.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crée une copie superficielle du Object actuel. Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Retourne une chaîne qui représente l'objet actuel. Returns a string that represents the current object.

(Inherited from Object)

Sécurité

SecurityPermission
pour un accès complet à la ressource protégée par l’autorisation. for full access to the resource protected by the permission. Demand. Demand.

S’applique à

Voir aussi