2010-11-16 4 views
1

J'ai une application MVC2 .NET 4.0, hébergée sur TFS 2008 (bientôt TFS 2010) qui utilise des chaînes de connexion dans web.config pour se connecter à une base de données sur un autre serveur. J'ai besoin de crypter ces chaînes de connexion.Cryptage Connectionstring dans l'application MVC2 .NET 4.0

Si je comprends bien, je peux utiliser aspnet_regiis.exe pour chiffrer la partie connectionstring du fichier web.config, mais je dois le faire sur la machine de déploiement parce que le cryptage utilise le nom de la machine pour générer la clé de cryptage.

Maintenant, il me semble que cela représente un problème - chaque fois que je déploie mon code sur le serveur de dev, ne va-t-il pas écraser le fichier web.config, et doit-il être re-chiffré? Ce genre de processus manuel semble kludgy.

  1. Est-ce que ma compréhension de la nécessité de rechiffrer après le déploiement est correcte?

  2. Si oui, existe-t-il un moyen d'automatiser ce processus? Je ne veux pas oublier cela ou obtenir un nouveau membre de l'équipe qui ne connaît pas le processus et qui a la chaîne de connexion exposée au monde.

Répondre

0

fichiers web.config ne sont généralement pas partie d'un déploiement (si Visual Studio 2010 prend en charge configuration file transforms dans les projets de déploiement d'applications Web). Je ne m'attendrais pas à ce que vous écrasiez le fichier web.config lorsque vous le déployez (car le fichier web.config est l'endroit où vous placez les éléments spécifiques à cet ordinateur/environnement.)

Donc, cryptez-le une fois et Puis, ne le remplacez pas, ce serait mon conseil

Comme ce n'est pas disponible dans votre situation, il est possible de spécifier une clé lors du cryptage, de sorte que vous puissiez partager le fichier crypté entre les machines. la commande de chiffrement utilise DPAPI pour chiffrer la section (qui est liée à la machine) mais vous pouvez également utiliser RSA pour le chiffrement.Vous trouverez plus d'informations sur MSDN dans Specifying a Protected Configuration Provider

+0

Il existe de nombreuses fois un fichier web.config Je dois être redéployé. Si vous stockez les paramètres de l'application dans le fichier web.config et qu'ils changent, si la configuration de l'IOC change, affiche les changements d'espace de nom du moteur, etc. – KallDrexx

+0

malheureusement, notre déploiement en dev consiste en un glisser-déposer des fichiers sur le serveur - donc web. config est réellement écrasé à chaque fois. Je sais que ce n'est pas optimal, mais ce n'est pas en mon pouvoir de changer. –