2010-12-01 4 views
3

Je chiffrent la chaîne de connexion dans web.config comme décrit ici:
http://blogs.msdn.com/b/sqlazure/archive/2010/09/07/10058942.aspx
publié à Azure et tout fonctionne comme prévu. MAIS maintenant je fais face à un problème pour mon développement local où je travaille contre une base de données locale où je n'ai pas besoin de cryptage de la chaîne de connexion.
Mon développement local est configuré en tant que configuration de débogage et j'ai essayé de remplacer (transformer) la section connectionStrings chiffrée de web.config comme:
Securing chaîne de connexion dans Windows Azure et web.config

<connectionStrings configProtectionProvider="CustomProvider"> 
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" 
... 
</EncryptedData> 

avec la section régulière non cryptée à web.config.debug

<connectionStrings> 
<add name="ApplicationServices" connectionString="data source=localhost... 
</connectionStrings> 

J'ai eu aucun problème avec l'ajout des sections xdt: Transformer = "Insertion, mais je n'a pas réussi à supprimer les sections de web.config
Il en résulte une erreur Parser message:. élément non reconnu 'EncryptedData' lors de l'exécution du projet Web en mode débogage.

Est-il possible de supprimer la section EncryptedData pour web.config.debug, ou une meilleure pratique pour résoudre ce problème?

+0

Pourquoi utiliser le même utilisateur/passwd en mode débogage? Déboguer sur une autre base de données avec d'autres informations d'identification. – Gerard

Répondre

0

Je me demandais ... pourquoi voulez-vous sécuriser la chaîne de connexion? Vous pouvez placer la chaîne de connexion dans le fichier .cscfg et ce fichier n'est pas exposé via IIS.

+3

Il ne s'agit pas d'exposer dans IIS, il s'agit à peu près de ce que vous pouvez lire la chaîne de connexion et le mot de passe simple même dans le fichier cscfg. J'aime cacher le mot de passe pour sql azure pour des raisons de sécurité, car pour le développement local, il n'est pas nécessaire de connaître le mot de passe azur. – freakdev

+1

Je ne trouve pas d'article sur le stockage de la chaîne de connexion cryptée dans cscfg, bien que ce soit ce que je veux faire. Si vous avez trouvé quelque chose, veuillez répondre – DaveH

-1

Oui, vous pouvez les mettre dans un fichier .csfg et créer une bibliothèque pour extraire le connectionstring (juste fournir la DLL):

public class MyContext : DbContext 
{ 
    private MyContext(string connString) 
     : base(connString) 
    { 
    } 

    public static MyContext GetMyContext() 
    { 
     string dbConnString = CloudConfigurationManager.GetSetting("MyDbConnectionString"); 

     return new MyContext(decrypt(dbConnString)); 
    } 
} 
Questions connexes