2010-07-22 8 views
3

Alors normalement, je mets simplement ma chaîne de connexion sql dans mon web.config asp.net et je la référence chaque fois que j'ai besoin d'ouvrir une connexion à une base de données, mais cela me laisse référencer tout mon projet. Cela expose également mon nom d'utilisateur et mot de passe de connexion sql dans mon web.config s'il n'est pas encodé. Quelles sont les meilleures pratiques en matière de maintien des méthodes de connexion dans une bibliothèque de classes ou de classes? J'ai vu un tutoriel php qui l'a très bien fait (mais je ne le retrouve pas) et permis de réutiliser.Méthodes de connexion SQL et meilleures pratiques

Répondre

5

Je conserverais toujours la chaîne de connexion dans le fichier web.config car les connexions serveur/base de données peuvent toujours changer, même si ce n'est pas courant. Pour le rendre plus agréable à voir dans le code que vous pouvez toujours ajouter quelque chose comme ceci:

String m_Connection = ConfigurationManager.AppSettings["MyConnectionString"]; 

et puis juste référence m_Connection partout.

Je voudrais également toujours crypter la chaîne de connexion en utilisant un EncryptionProvider.

Grand article MSDN: How To: Encrypt Configuration Sections in ASP.NET 2.0 Using DPAPI

+0

Et si je créais une classe statique qui renvoyait la chaîne, ainsi si je renommais "MyConnectionString" à autre chose, je n'aurais qu'à le faire une seule fois. Cela a-t-il du sens? Merci btw! – drpcken

+2

Si vous créez une classe statique qui renvoie la chaîne, puis que vous souhaitez remplacer "MyConnectionString" par quelque chose d'autre, cela signifie que vous devrez modifier la chaîne à l'intérieur de la classe, ce qui signifie que vous devrez compiler à nouveau. Si vous ne voulez pas que votre application souffre de temps d'arrêt ou d'une nouvelle installation, je ne garderais pas cela dans une classe compilée, et j'éviterais de changer les chaînes de configuration comme cela. – gillyb

+0

Désolé de remettre cela en place, mais vous voulez dire mettre m_Connection' dans une bibliothèque? Puis-je le rendre statique, donc je n'ai pas besoin de l'instancier partout? J'adorerais juste pouvoir dire 'ConnectionString = m_Connection' à tout moment sans avoir à l'instancier. – drpcken

0

Je suis d'accord avec @gillyb. Dans la plupart des cas, le fichier web.config est l'emplacement de la ou des chaîne (s) de connexion. L'autre alternative courante est un fichier de configuration spring.Net si vous faites un usage intensif de l'injection de dépendance. Le résultat final est le même sauf que le site ne sera pas reconstruit si vous changez le fichier Spring.config, alors que si vous changez web.config.

Questions connexes