Évitez de donner une string de connection au server dans web.config

Je construis un site Web en utilisant asp.net MVC. J'ai deux strings de connection dans le web.config, une pour la database locale et une pour la database du server. Je suis en train de tester mon travail sur local et ensuite le mettre sur le server. la string de connection du server ( user name and password ) se trouve également dans le file web.config. Demain, quand je vendrai le produit, je veux m'assurer que je ne donne pas ce web.config aux clients. mais cela peut arriver par erreur. Comment puis-je empêcher cela?

Ma suggestion serait d'utiliser l'une des deux methods suivantes:

Un file ConnectionSsortingngs.config ou une transformation Web.Config . Comme d'habitude, il y a des avantages et des inconvénients pour les deux.

Utilisation d'un file de configuration séparé pour les strings de connection

  • Chaque développeur peut avoir une copy locale de ses strings de connection
  • ConnectionSsortingngs peut être marqué pour ignorer et n'a jamais été affecté au contrôle de source

Cependant – Nécessite que chaque client / développeur soit géré individuellement

Web.config transforme

  • Chaque string de connection / configuration de construction peut être contrôlée par la source
  • Nécessite la publication de l'application plutôt qu'une simple construction

toutefois

  • Peut devenir difficile à maintenir avec un grand nombre de transformations.

Personnellement, je préfère avoir un ConnectionSsortingngs.config – Je n'aime pas avoir les informations d'identification de production dans le contrôle de la source. Cela a aussi l'effet secondaire de donner une erreur de construction si vous l'avez oubliée, donc vous ne pouvez pas les laisser par erreur.

N'utilisez pas le nom d'user et le mot de passe dans la string de connection, mais utilisez la security embeddede.

Au lieu de cela.

 User ID=****; Password=****; 

Utilisez ceci.

 Integrated Security=true; 

Et assurez-vous que votre user de connection a access à la database locale. Et le server IIS a access à la database du server.

Voir ici pour configurer IIS pour pouvoir accéder à SQL Server.