2012-01-11 7 views
1

Je suis en train d'écrire et installer pour une application ASP.NET, et j'ai quelques champs de données, (chaînes de connexion, serveurs smtp, etc), que je veux que l'installateur construise à partir de l'utilisateur entrée, crypter et stocker dans le fichier Web.config. Le problème que je rencontre est que WebConfigurationManager et ConfigurationManager sont tous deux conçus pour fonctionner sur des fichiers de configuration existants. Comment puis-je construire un nouveau fichier de configuration et le crypter avant de l'enregistrer?C# créer le fichier Web.config par programme

+0

il suffit de créer un fichier XML. –

+0

Puis-je obtenir le cryptage sur le fichier xml? –

+1

Enregistrez un web.config minimal en tant que ressource dans le programme d'installation, enregistrez-le dans un fichier, puis continuez. –

Répondre

3

Je recommande de commencer avec un fichier de configuration de base qui ne contient pas les champs que vous voulez, puis en utilisant XDocument ou WebConfigurationManger ajouter les informations de configuration et crypter.

Source: Encrypting and decrypting sensitive data in your web.config files using Protected configuration - Part IV

code Incase le contenu descend:

private void EncryptConfig() 
{ 
    // Open the Web.config file. 
    Configuration config = 
     WebConfigurationManager.OpenWebConfiguration("~"); 
    // Get the connectionStrings section. 
    ConnectionStringsSection section = 
    config.GetSection("connectionStrings") as ConnectionStringsSection; 

    // Toggle encryption. 
    if (section.SectionInformation.IsProtected) 
    { 
     section.SectionInformation.UnprotectSection(); 
    } 
    else 
    { 
    if (!section.SectionInformation.IsLocked) 
    { 
     section.SectionInformation 
       .ProtectSection("RsaProtectedConfigurationProvider");    

     section.SectionInformation.ForceSave = true;    

     //Save changes to the Web.config file.  
     config.Save(ConfigurationSaveMode.Full);   } 
    } 
} 
+0

Merci, j'ai pris du temps et j'ai rencontré quelques problèmes, mais j'ai réussi à obtenir quelque chose comme ça. –

Questions connexes