2010-10-03 9 views
2

J'essaie de chiffrer une section personnalisée dans un fichier web.config.
Lorsque j'arrive à la ligne qui appelle ProtectSection(), j'obtiens une exception indiquant que le fournisseur est introuvable. Je l'ai également essayé avec RSA et j'ai eu la même erreur.
En cours d'exécution aspnet_regiis.exe fonctionne, mais je dois le faire par programmation. Qu'est-ce que je rate?Fournisseur introuvable lors du chiffrement de web.config

Merci.

Répondre

1

Si vous essayez de nous Windows Data Protection Provider ne devrait pas le paramètre passé à ProtectSetion dire "DpapiProtectedConfigurationProvider".

Pour RSA, il devrait être "RsaProtectedConfigurationProvider" qui est par défaut et l'option preffered

+0

J'ai essayé, mais j'ai quand même eu la même erreur: Impossible de chiffrer MySection. Le fournisseur de protection 'DpapiProtectedConfigurationProvider' n'a pas été trouvé. Impossible de crypter MySection. Le fournisseur de protection 'RsaProtectedConfigurationProvider' n'a pas été trouvé. – user464931

+1

Non, il ne doit pas s'appeler 'DpapiProtectedConfigurationProvider' - ce peut être le fournisseur, mais ce n'est pas la chaîne que vous utilisez pour ce fournisseur. MSN: * "Une instance de DPAPIProtectedConfigurationProvider nommée" DataProtectionConfigurationProvider ". * * – bgmCoder

2

Vous avez raison d'utiliser `DataProtectionConfigurationProvider » (see here for the provider names - le nom du fournisseur pour DPAPI n'a pas DPAPI en elle - mais le fournisseur pour rsa ne), cependant, votre problème est que vous ne pouvez pas exécuter iisreg sur une section nommée "MySection" - il doit y avoir certaines sections.

Ce que le message signifie, c'est qu'aucun fournisseur n'est disponible pour cette section particulière. Pour tester votre code, essayez le code "AppSettings" ou "connectionStrings" ou "system.net/mailSettings/smtp". - Tout cela fonctionne avec aspnet_regiis.exe.

Voir ce other Stack Exchange thread sur la façon de chiffrer des sections personnalisées.