10
votes

Quelle est la différence entre connexions et appsettings?

Dans l'une des applications, je parle de la chaîne de connexion est stockée dans AppSettings! Jusqu'à présent, j'ai stocké la connexion dans l'élément . Mais quelle est la bonne façon?

Donc, ma question est, quelles sont les différences entre et dans le web.config et y a-t-il des raisons spécifiques pour lesquelles je devrais ou devrait Ne pas stocker les chaînes de connexion dans les applications? Existe-t-il des règles / directives fournies? Ou est-ce complètement le choix du développeur?


1 commentaires

Si je me souviens bien, ASP.NET 1.1 n'a pas pris en charge une section "connexions" dans web.config, de sorte que les chaînes de connexion ont fini par des applications avec tout le reste. Vous pouvez rencontrer des applications qui ont leurs racines dans les 1,1 jours (ou peut-être des développeurs dont les habitudes sont bloquées en dépit d'être dans des projets de 2.0+).


6 Réponses :


0
votes

Les chaînes de connexion sont généralement conservées dans le élément ... et est une bonne directive car elle est nommée correctement.

Parfois, vous pouvez utiliser une commande tierce partie ou UserControl qui recherche la chaîne de connexion dans une clé dans l'élément élément. Cela devrait être la seule exception à la directive.


0 commentaires

12
votes

Il existe une différence fondamentale entre connexionstring code> et appsettes code>:

Ils recherchent des choses différentes. En .NET 2.0 et sur-dessus: P>

A ConnectionsRingTring code> est un nœud XML contenant des attributs spécifiques à définir; et sémantiquement il fait référence à une chaîne de connexion de base de données. p>

par exemple, un connexionstring code> ressemble à ce qui suit: p>

<appSettings>
    <add key="Mom" value="Your"/>
    <add key="UseCache" value="True"/>
    <add key="MapsKey" value="1234567890-AA"/>
    <add key="SMTPServer" value="smtp.peterkellner.net"/>
</appSettings>
  • nom code> li>
  • connexionstring code>: Ceci a une chaîne spécifique à l'intérieur, il a besoin d'un catalogue initial code>, d'un mécanisme de sécurité (dans ce cas Sécurité intégrée Code> li>
  • Providername code> li> ul>

    alors que appsettings code> est juste une paire de clé de clé définie par l'utilisateur qui vous permet de ... Eh bien ... Définir les paramètres d'application. Cela peut être n'importe quoi: p> xxx pré>

    Dans de nombreux cas, il serait juste impair em> pour mettre les connexions dans une paire de valeur de clé comme appSettings code> (sémantiquement et par programme). Ainsi que cela rendrait plus difficile à chiffrer les connexions lorsque vous devez . p>

    Il y a plus d'informations À ce sujet de ce blog post . p> p>


0 commentaires

6
votes

Autant que je sache, cela ne fait pas une énorme quantité de différence, autre qu'elle étant dans le lieu "correct" - l'avantage principal de la mise en place des chaînes de connexion dans leur propre section (vous devez crypter vos chaînes de connexion. droite?) Est-ce que vous pouvez chiffrer qui Section sans crypter tous les paramètres que vous voudrez peut-être changer.


1 commentaires

De plus, vos gars de serveur peuvent chiffrer et modifier la section de chaîne de connexion séparément, de sorte que vous passez de Dev à QA à la production, ce droit est leur responsabilité, pas la vôtre.



0
votes

En outre, dans IIS7, Connect Strings peut être maintenu à travers l'administration IIS7 respective.


0 commentaires

0
votes

Vous pouvez utiliser la section AppSettings pour partager des paramètres de configuration de l'application personnalisés à travers Projets dans .NET.

Comment partager les paramètres de configuration de l'application personnalisés à travers Projets dans .NET


0 commentaires

0
votes

En ce qui concerne le déploiement, il y a une différence significative entre eux. Lorsque vous importez des forfaits Web vers IIS:

  • Les chaînes de connexion seront automatiquement incluses dans la boîte de dialogue Assistant pour un paramétrage supplémentaire.
  • Les paramètres de l'application ne seront pas là par défaut. Si vous voulez vraiment faire cela, veuillez suivre les étapes décrites dans "Paramétrage personnalisé - Paramètres de l'application dans la section Web.Config" de la section Configuration des paramètres pour le déploiement de package Web

    Cela signifie que, lorsqu'il s'agit de déploiement, vous feriez mieux de mettre des paramètres d'environnement (base de données, cache, clé AWS / secret, etc.) dans les chaînes de connexion. Il fournira une différenciation entre Dev / Staling / Prod Environnement explicitement.


0 commentaires