2010-10-18 4 views
0

Au lieu d'appeler ConfigurationManager.ConnectionStrings("db1").ToString() et ConfigurationManager.ConnectionStrings("db2").ToString() partout dans mon DAL, serait-il bien de créer une classe statique globale (ConnStrings) avec des propriétés en lecture seule statique (db1 et db2) et remplacer le appels avec ConnStrings.db1 et ConnStrings.db2?Garder ConnectionStrings dans une classe mondiale

Étant donné que mes chaînes de connexion sont cryptées, sont-elles décryptées lorsque je mets db1/db2 ou seulement quand on y accède?

Répondre

1

C'est une bonne idée. Essentiellement, vos appels à ConfigurationManager sont une duplication de code, que vous souhaitez supprimer.

Les chaînes de connexion sont décryptées lorsqu'elles sont extraites du fichier de configuration. Donc, ConnStrings.db1 serait une chaîne non cryptée.

+0

Est-il bon d'avoir les détails de la connexion non chiffrée dans une propriété statique? ne préféreriez-vous pas décrypter au dernier moment possible? – eych

+0

Eh bien, vous avez toujours la possibilité d'appeler ConnStrings.db1 dans ConfigurationManager.ConnectionStrings, au lieu de stocker dans un champ statique. Ensuite, vous avez encore les chaînes de connexion cryptées jusqu'à la dernière minute, ce qui est bon du point de vue de la sécurité. Mais honnêtement, pour la plupart des applications, cela n'aurait pas d'importance. Si un attaquant a la possibilité de regarder dans la mémoire de votre application, il peut aussi appeler ConfigurationManager. – driis

Questions connexes