App.config chaîne de connexion erreur de Protection
Je suis en cours d'exécution sur un problème que j'avais avant; ne peut pas trouver ma référence sur la façon de le résoudre.
Ici est la question. Nous chiffrons les chaînes de connexion dans la section de l'app.config pour notre client de l'application à l'aide du code ci-dessous:
config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
If config.ConnectionStrings.SectionInformation.IsProtected = False Then
config.ConnectionStrings.SectionInformation.ProtectSection(Nothing)
' We must save the changes to the configuration file.'
config.Save(ConfigurationSaveMode.Modified, True)
End If
Le problème c'est que nous avions un vendeur de congé. Le vieux portable va à un nouveau vendeur et en vertu de la nouvelle session de l'utilisateur lorsqu'il tente de le faire, nous obtenons une erreur. L'erreur est:
Unhandled Exception: System.Configuration.ConfigurationErrorsException:
An error occurred executing the configuration section handler for connectionStrings. ---> System.Configuration.ConfigurationErrorsException: Failed to encrypt the section 'connectionStrings' using provider 'RsaProtectedConfigurationProvider'.
Error message from the provider: Object already exists.
---> System.Security.Cryptography.CryptographicException: Object already exists
- Si vous êtes sur Vista, ou au-dessus, assurez-vous que vous êtes en cours d'exécution en tant qu'administrateur.
Vous devez vous connecter pour publier un commentaire.
http://blogs.msdn.com/mosharaf/archive/2005/11/17/protectedConfiguration.aspx#1657603
copier et coller 😀
Lundi, février 12, 2007 12:15 AM par Naica
re: Cryptage de fichiers de configuration à l'aide de la configuration protégée
Voici une liste de toutes les étapes que j'ai réalisé pour chiffrer les deux sections sur mon PC puis de le déployer sur le Serveur. Peut-être que ça va aider quelqu'un...:
De créer une machine au niveau de conteneur de clé RSA
Ajouter ce site web.config avant de la section connectionStrings:
Ne manquez pas les
<clear />
à partir de ci-dessus! Important lorsque vous jouez avec le cryptage/décryptage de nombreuses foisCochez cette case pour que le présent en haut de Web.Fichier de configuration. En cas de disparition de l'ajouter:
Enregistrez et fermez le Web.Fichier de configuration de VS (très important!)
Dans l'Invite de Commande (mon PC local) de la fenêtre aller à:
Chiffrer: (Être conscient de Changer de chemin d'accès physique pour votre Application, ou utilisez l'application de l'option et de donner le nom o répertoire virtuel pour l'application! Parce que j'ai utilisé VS sur mon PC j'ai préféré le soufflet option. Le chemin est le chemin d'accès à Internet.fichier de config)
aspnet_regiis -pef "connectionStrings" "c:\Bla\Bla\Bla" -prov "DataProtectionConfigurationProvider"
aspnet_regiis -pef "du système.web/d'adhésion" "c:\Bla\Bla\Bla" -prov "DataProtectionConfigurationProvider"
À Déchiffrer (si nécessaire seulement!):
Supprimer les Clés Conteneur (si nécessaire seulement!)
Enregistrer la clé ci-dessus pour fichier xml afin de l'exporter à partir de votre ordinateur local vers le Serveur web (UAT ou de la Production)
Importer le contenu de la clé sur le Serveur web serveurs:
Accorder l'accès à la clé sur le serveur web
Voir dans IIS l'ASP.NET de l'utilisateur ou de l'utilisation:
Supprimer Accorder l'accès à la clé sur le serveur web (Seulement si nécessaire!)
Copiez et Collez le Serveur web le Web crypté.fichier de configuration.
J'ai trouvé une solution plus élégante qu'originale dans ma réponse à moi-même. J'ai découvert que si je viens de connecté en tant que th euser qui originairement installé l'application et a causé le fichier de config connectionstrings être chiffrées et aller à l' .net framework répertoire dans un commadn d'invite de commandes et exécutez
il a donné de l'autre utilisateur a la permission d'accéder à la clé de chiffrement RSA conteneur et il travaille ensuite pour les autres utilisateur(s).
Voulais juste ajouter ici, que je pensais que j'avais blogué cette question sur notre devblog, mais trouve ici, alors que dans le cas où j'ai besoin de le regarder à nouveau, il sera ici. Va ajouter un lien vers notre devblog point à ce fil ainsi.
Je n'ai donc qu'il fonctionne.
Mais tout cela n'a été qu'il fonctionne pour cet utilisateur.
MAINTENANT, j'ai besoin de savoir ce que je dois faire pour changer le code de protection de la section, de sorte que plusieurs utilisateurs sur un PC peuvent utiliser l'application. Virtual PC ici, je viens bien après les vacances de WDW demain grâce à mercredi prochain)!
des conseils pour les aider de me pointer dans la bonne direction, car je ne suis pas très expérimenté dans ce type de cryptage RSA choses.
Sonne comme un problème d'autorisations. Le (nouveau) de l'utilisateur en question a des droits d'écriture à l'application.fichier de config? Le précédent utilisateur d'un administrateur local ou de la puissance de l'utilisateur qui pourrait avoir masqué ce problème?