7
votes

Comment chiffrer app.config?

Créer app.config dans WPF (C #) xxx

code utilisé C #: xxx

config.save () ; - Causes Exception:

{"Impossible de chiffrer la section" Connexionstrings "à l'aide du fournisseur "RSAprotecteConfigurationProvider". Le message d'erreur de la Fournisseur: l'objet existe déjà. \ r \ n "}


9 commentaires

@Thiefmaster: C'est manifestement faux.


@Thiefmaster, je me lue de forum ... Comment est-ce fait?


Duplicaté possible: Stackoverflow.com/Questtions/42115 / ...


@Jason: Qu'est-ce qu'une bonne raison de chiffrer un fichier de configuration? L'application doit être capable de le déchiffrer de toute façon afin que l'on puisse simplement extraire les clés de cryptage de celle-ci ...


@Thiefmaster: Le cryptage des fichiers de configuration est courant. Il protège le fichier de configuration contre la perte de médias accidentelle et contre les lectures de comptes non autorisés. Les sections de configuration sont protégées à l'aide de DPAPI. Le fait que les classes .NET Framework qui manipulent des sections de configuration ont des méthodes explicites pour chiffrer et le contenu de déchiffrement devraient être un grand panneau d'avertissement que cette opération est très très légitime.


@Thiefmaster: Il semble que vous ayez fait une déclaration audacieuse sans même comprendre ce qui est impliqué ici. C'est très bien; Nous le faisons tous de temps en temps. Qu'est-ce que Saddens Me est les upvotes sur votre commentaire. 1. Vous chiffrez un fichier de configuration pour protéger les données. Un exemple peut être une chaîne de connexion de base de données. 2. Vous n'avez pas besoin de stocker une clé dans l'exécutable; Il existe des routines intégrées pour la gestion de ce problème et ils sont très sécurisés.


Supprimé ça .. Cela ressemblait à une personne allait mettre des données sensibles dans un fichier de configuration expédié à d'autres personnes en supposant qu'ils n'ont aucune possibilité de déterminer ces données. Et dans ce cas, cela aurait effectivement une mauvaise chose.


Tout est si simple? Alors donnez un exemple! Je n'ai pas eu de canette pour résoudre ce problème. J'ai besoin d'exmpale


Dupliqué possible de Comment dois-je chiffrer la chaîne de connexion dans l'application .config?


3 Réponses :


0
votes

Vous pouvez regarder à l'aide du aspnet_regiis.exe pour effectuer le cryptage pour vous. Se référer à ceci lien MSDN

De cette façon, vous pouvez effectuer un cryptage sans écriture de code.


4 commentaires

Cela ne fonctionne qu'avec web.config fichiers pour les applications hébergées ASP.NET.


Cela ressemble plus à un problème de permission. Pouvez-vous essayer d'utiliser le DataProtectionConfigurationProvider ? Pouvez-vous essayer de donner une autorisation supplémentaire à votre identifiant de connexion via cette commande aspnet_regiis -pa "neframeworkconfigurationkey" {domaine} \ {utilisateur} ?


Basé sur mon expérience, cette approche ne fonctionne pas. Voir Stackoverflow.com/q/39351945/147637 et Stackoverflow.com/q/39338800/147637


Cela fonctionne avec Web.config et app.config. Il suffit de renommer app.config comme web.config. Docs. microsoft.com/en-us/dotnet/framework/data/adonet/...



1
votes

vérifier le SectionInformation.ProtectSection Mode

Vérifiez également ici < / p>


1 commentaires

C'est bon, mais je ne comprends pas. J'ai besoin d'un exemple de travail = (



1
votes

J'avais la même exception à la sauvegarde. En exécutant la demande en tant qu'administrateur, j'ai pu contourner cela.

J'ai ajouté un fichier app.Manifest à mon projet et modifié le niveau d'exécution, comme: demandedexecueLevel Niveau = "requissionnel" UIACCESS = "FALSE"

De cette façon, je fonctionne toujours en tant qu'administrateur et que vous avez des autorisations pour enregistrer la section cryptée.


0 commentaires