Partager via


Implémentation d'un fournisseur de configuration protégée

Mise à jour : novembre 2007

La configuration protégée permet de chiffrer des sections du fichier Web.config d'une application ASP.NET pour protéger des informations sensibles utilisées par l'application. La sécurité de votre application est améliorée dans la mesure où il sera très difficile à un intrus d'accéder à des informations sensibles même s'il parvient à accéder à votre fichier Web.config. ASP.NET comprend deux fournisseurs de configuration protégée permettant de chiffrer des sections d'un fichier Web.config : RsaProtectedConfigurationProvider qui utilise RSACryptoServiceProvider pour chiffrer des sections de configuration et DpapiProtectedConfigurationProvider qui utilise l'API de protection des données (DPAPI) Windows pour chiffrer des sections de configuration.

Dans certains cas, il peut s'avérer nécessaire de chiffrer des informations à l'aide d'un algorithme autre que ceux proposés par les fournisseurs RSA ou DPAPI. Vous pouvez alors générer un fournisseur de configuration protégée personnalisé qui sera utilisé par ASP.NET.

Classes requises pour les fournisseurs de configuration protégée

Pour implémenter un fournisseur de configuration protégée, vous créez une classe qui hérite de la classe abstraite ProtectedConfigurationProvider de l'espace de noms System.Configuration. Étant donné que la classe abstraite ProtectedConfigurationProvider hérite de la classe abstraite ProviderBase de l'espace de noms System.Configuration.Provider, vous devez implémenter aussi les membres requis de la classe ProviderBase. Cette rubrique décrit les propriétés et les méthodes requises que vous devez implémenter à partir des classes abstraites ProviderBase et ProtectedConfigurationProvider. Pour voir une implémentation de chaque membre, consultez Comment : générer et exécuter l'exemple de fournisseur de configuration protégée.

Membres ProviderBase obligatoires

Membre

Description

Méthode Initialize

Définit les valeurs des propriétés de l'instance de fournisseur, y compris des valeurs spécifiques à l'implémentation et des options fournies dans la configuration d'application.

Prend en entrée le nom du fournisseur et NameValueCollection de paramètres de configuration.

Membres ProtectedConfigurationProvider obligatoires

Membre

Description

Méthode Encrypt

Exécute le chiffrement. Prend en entrée un objet XmlNode qui contient la section de configuration à chiffrer. Par exemple, si la section de configuration à chiffrer est la section connectionStrings, l'objet XmlNode représente des données XML similaires à l'exemple suivant.

<connectionStrings>
  <add name="SampleConnectionString" 
    connectionString="Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI;" />
</connectionStrings>

La méthode Encrypt chiffre la valeur OuterXml de l'objet XmlNode et retourne un objet XmlNode dans lequel un élément EncryptedData constitue l'élément racine, comme l'illustre l'exemple suivant :

<EncryptedData>
  <!-- encrypted contents -->
</EncryptedData>

Le format du contenu de l'élément EncryptedData est déterminé par votre implémentation. Lorsque l'élément est déchiffré, ASP.NET passe un objet XmlNode à la méthode Decrypt, dans laquelle l'élément EncryptedData est l'élément racine.

Méthode Decrypt

Exécute le déchiffrement. Prend en entrée un objet XmlNode qui contient l'élément EncryptedData d'une section de configuration chiffrée. Par exemple, si la section connectionStrings est la section de configuration qui a été chiffrée, l'objet XmlNode représente des données XML similaires à celles affichées en surbrillance dans l'exemple suivant.

<connectionStrings configProtectionProvider="CustomProvider">
  <EncryptedData>    <!-- encrypted contents -->  </EncryptedData>
</connectionStrings>

La méthode Decrypt déchiffre le contenu de l'objet XmlNode et retourne un objet XmlNode qui représente le contenu déchiffré de l'objet EncryptedDataXmlNode. Par exemple, si la section connectionStrings a été chiffrée, la méthode Decrypt retourne un objet XmlNode contenant des données XML similaires à l'exemple suivant.

<connectionStrings>
  <add name="SampleConnectionString" 
    connectionString="Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI;" />
</connectionStrings>

Exemple de fournisseur

Pour obtenir un exemple de fournisseur de configuration protégée personnalisé qui utilise la classe TripleDESCryptoServiceProvider pour chiffrer et déchiffrer des sections d'un fichier Web.config, consultez Comment : générer et exécuter l'exemple de fournisseur de configuration protégée.

Voir aussi

Tâches

Comment : générer et exécuter l'exemple de fournisseur de configuration protégée

Autres ressources

Chiffrement des informations de configuration à l'aide de la configuration protégée