begin process at 2010 02 09 23:04:58
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité & Cryptage

 > SAUVEGARDER DES DONNÉES SENSIBLES DANS LE FICHIER DE CONFIGURATION (CRYPTAGE) (.NET2)

SAUVEGARDER DES DONNÉES SENSIBLES DANS LE FICHIER DE CONFIGURATION (CRYPTAGE) (.NET2)


 Information sur la source

Note :
8,33 / 10 - par 3 personnes
8,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Sécurité & Cryptage Source .NET ( DotNet ) Classé sous :sauvegarde, configuration, crytage, donnée Niveau :Débutant Date de création :16/06/2006 Vu / téléchargé :8 657 / 526

Auteur : fcolo

Ecrire un message privé
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
J'ai une application de gestion de caméra IP pour laquelle je dois sauvegarder les paramètre de l'utilisateur.
Comme je dois sauvegarder des mots de passe, je sus obliger de protéger le fichier de sauvegarde.
On m'avait éguillé vers les IsolatedStorage (
Puis on m'a aiguiller vers le fichier de configuration de l'appli (http://www.csharpfr.com/infomsg_OU-COMMENT-SOUVEG ARDER-MOTS-PASSE-TOUTE-SECURITE_752886.aspx et http://www.csharpfr.com/infomsg_APP-CONFIG_750223. aspx?p=2).
Après avoir trouver mon bonheur sur les MSDN ( http://msdn2.microsoft.com/fr-fr/library/system.co nfiguration.dpapiprotectedconfigurationprovider.as px ), je vous en fait également profiter.
Mon code n'est qu'une pale copie de celui des MSDN, a part que je crypte le AppSettings plutot que ConnectionStrings.

Source

  • void EncryptConfigFile()
  • {
  • if (appSetting != null)
  • {
  • if (!appSetting.SectionInformation.IsProtected)
  • {
  • if (!appSetting.ElementInformation.IsLocked)
  • {
  • // Protect the section.
  • appSetting.SectionInformation.ProtectSection(provider);
  • appSetting.SectionInformation.ForceSave = true;
  • config.Save(ConfigurationSaveMode.Full);
  • MessageBox.Show("Section "+appSetting.SectionInformation.Name+" is now protected by "+appSetting.SectionInformation.ProtectionProvider.Name);
  • }
  • else
  • MessageBox.Show(
  • "Can't protect, section {0} is locked",
  • appSetting.SectionInformation.Name);
  • }
  • else
  • MessageBox.Show(
  • "Section " + appSetting.SectionInformation.Name + " is already protected by " + appSetting.SectionInformation.ProtectionProvider.Name);
  • }
  • else
  • MessageBox.Show("Can't get the section "+ appSetting.SectionInformation.Name);
  • }
  • void DecryptConfigFile()
  • {
  • if (appSetting != null)
  • {
  • if (appSetting.SectionInformation.IsProtected)
  • {
  • if (!appSetting.ElementInformation.IsLocked)
  • {
  • // Unprotect the section.
  • appSetting.SectionInformation.UnprotectSection();
  • appSetting.SectionInformation.ForceSave = true;
  • config.Save(ConfigurationSaveMode.Full);
  • MessageBox.Show("Section " + appSetting.SectionInformation.Name + " is now unprotected.");
  • }
  • else
  • MessageBox.Show(
  • "Can't unprotect, section " + appSetting.SectionInformation.Name + " is locked");
  • }
  • else
  • MessageBox.Show(
  • "Section "+appSetting.SectionInformation.Name+" is already unprotected.");
  • }
  • else
  • MessageBox.Show("Can't get the section {"+appSetting.SectionInformation.Name);
  • }
        void EncryptConfigFile()
        {
            if (appSetting != null)
            {
                if (!appSetting.SectionInformation.IsProtected)
                {
                    if (!appSetting.ElementInformation.IsLocked)
                    {
                        // Protect the section.
                        appSetting.SectionInformation.ProtectSection(provider);

                        appSetting.SectionInformation.ForceSave = true;
                        config.Save(ConfigurationSaveMode.Full);

                        MessageBox.Show("Section "+appSetting.SectionInformation.Name+" is now protected by "+appSetting.SectionInformation.ProtectionProvider.Name);
                    }
                    else
                        MessageBox.Show(
                             "Can't protect, section {0} is locked",
                             appSetting.SectionInformation.Name);
                }
                else
                    MessageBox.Show(
                        "Section " + appSetting.SectionInformation.Name + " is already protected by " + appSetting.SectionInformation.ProtectionProvider.Name);
            }
            else
                MessageBox.Show("Can't get the section "+ appSetting.SectionInformation.Name);
        }

        void DecryptConfigFile()
        {
            if (appSetting != null)
            {
                if (appSetting.SectionInformation.IsProtected)
                {
                    if (!appSetting.ElementInformation.IsLocked)
                    {
                        // Unprotect the section.
                        appSetting.SectionInformation.UnprotectSection();

                        appSetting.SectionInformation.ForceSave = true;
                        config.Save(ConfigurationSaveMode.Full);

                        MessageBox.Show("Section " + appSetting.SectionInformation.Name + " is now unprotected.");

                    }
                    else
                        MessageBox.Show(
                             "Can't unprotect, section " + appSetting.SectionInformation.Name + " is locked");
                }
                else
                    MessageBox.Show(
                        "Section "+appSetting.SectionInformation.Name+" is already unprotected.");

            }
            else
                MessageBox.Show("Can't get the section {"+appSetting.SectionInformation.Name);

        }

 Conclusion

Après avoir compilé le projet (j'espère que ca va fonctionner), lancez directement l'application depuis ./bin/debug/ sinon le fichier de configuration sera supprimé autmatiquement par visual studio.
Dans l'appli, entrez des enregistrement et fermer l'appli.
On vous demande si vous voulez crypter ou pas. A vous de voir les deux cas.
Ouvrez avec votre éditeur de texte le fichier de config et visualisez la différence.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) CONTROLE TEXTBOX POUR LA SAISIE D'ADRESSE IP.

 Sources de la même categorie

Source .NET (Dotnet) CLASS POUR LES LOGIN par DanMor498
Source avec Zip Source avec une capture Source .NET (Dotnet) CALCUL D'EMPREINTES DE FICHIERS par lex35
Source avec Zip Source .NET (Dotnet) UTILISER (ET SIMPLIFIER) UN READERWRITERLOCKSLIM AVEC USING ... par TheManu
Source avec Zip Source avec une capture Source .NET (Dotnet) GÉNÉRATEUR DE CLÉS (KEYGEN) AVEC CLÉ PUBLIQUE ET PRIVÉE ET G... par stalmar
Source avec Zip Source avec une capture Source .NET (Dotnet) CRYPTAGE PAR CESAR par youma85

 Sources en rapport avec celle ci

Source avec une capture Source .NET (Dotnet) MODIFIER LA CONFIGURATION DU RÉSEAU LOCAL par thithi242
Source avec Zip Source avec une capture Source .NET (Dotnet) GESTION COMPLETE D'UNE BASE DE DONNEE ACCESS par ThoT49
Source avec Zip Source .NET (Dotnet) FICHIER DE CONFIGURATION : CUSTOM SECTION, CUSTOM ELEMENT (S... par Bidou
Source avec Zip Source avec une capture Source .NET (Dotnet) DIFFÉRENCE ENTRE DEUX BASES EXCEL par guizmows
Source avec Zip Source .NET (Dotnet) SAUVEGARDE DE CONFIGURATION PAR ISOLATEDSTORAGEFILE par kbumbazz

Commentaires et avis

Commentaire de SharpMao le 19/06/2006 09:43:03

Génial, il ma fallait justement quelque chose comme ça, mais je n'avais pas encore eu le temps de chercher.

Juste un détail, j'ai oté deux lignes au début :

if (appSetting.SectionInformation.IsProtected)
DecryptConfigFile();

Avec ces deux lignes, le fichier de config était en clair durant le temps d'éxécution de l'application, alors que ce n'est pas nécessaire pour lire ou éditer les valeurs.

Merci pour ton aide,

Sharpmao

Commentaire de fcolo le 19/06/2006 19:10:28

:) merci, je ne savais pas que l'on pouvait modifier les valeur cryptées.
Dans le source au moment de la lecture et de la sauvegarde des données, il y a les mêmes lignes, si tu veux les virer également ...

f.colo

Commentaire de woot6768 le 20/06/2006 09:56:09

Merci pour ton travail!
Bonne source.
Woot

Commentaire de the_revival le 31/10/2006 20:46:55

Merci pour ce code !

Même une fois crypté, l'appli en C# arrive a lire le contenu et à extraire les valeurs protégées avec un simple : "String css = ConfigurationSettings.AppSettings["myConnection"];"

Ce qui est impeccable car ma chaine de connexion MySQL n'est plus lisible :)

Commentaire de madebyhisto le 17/07/2008 16:17:36 9/10

Super ton projet, je sais que ce projet est là depuis longtemps, mais voici un information intéressante.

Si tu veux que le debug puisse voir correctement le fichier de config dans de debug de visual studio il te faut 2 chose.

1) que ton fichier se nomme SaveAndEncryptConfigFile.exe.config au lieu de SaveAndEncryptConfigFile.config

2) que tu utilise la commande suivante :
ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath) au lieu de
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)

Ensuite du lance le debug et ça fonctionne numéro 1

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

sauvegarde de variable [ par FaustVII ] Faustje cherche a sauvegarder la valeur d' une variable apres l avoir modifier lors de l execution de mon programme est ce que quelqu un pourrai m exp Sauvegarde de multiple variable dans un .INI [ par CracK ] J'aimerai savoir comment sauvegarder plusieurs variables dans un fichier .INI . ( Ecriture/Lecture )Merci , CracK Listview et base de donnée [ par fredza ] Salut,En C# est-il possible de remplir une listview (en mode détail avec le contenu d'une base de donnée) si oui comment ?Ma base est constituée de pl Imprimante / Configuration de la page [ par zouzounet ] Bonjour,J'ai un petit soucis avec une impression dans un prog.J'utilise du GDI+ pour tracer un tableau, que je rempli de texte (toujours avec GDI+) et Base de donnée [ par cedricp16 ] Bonjour ! quelqu'un peut il m'éclairer sur l'acces aux champs Password et ConnectionTimeout de l'objet OleDbConnection ?Je n'arrive pas à acceder à ce Recuperation de donnée [ par Online ] Bonjour, Je voudrais savoir comment faire pour récuperer des données qui se trouvent dans une fenetre DOS (Par exemple les réponses d'un ping ou quoi Ecriture de donnée dans des bases Lotus Notes via c# [ par bergechr ] Salut,Je cherche à developper un programme en C# qui ecrit des données directement dans une base Lotus Notes (.nsf), et plus particulièrement dans la 4 décimales :(( [ par esbee1 ] Salut à tous,J'essaye avec grands problèmes d'apprendre c# et celà fait maintenant 3 semaines que je cherche une solution (sûrement simple), pour conv Sauvegarde Application MDI [ par inza ] Comment enregistrer les modifications apportées à 2 DataGrid posés sur une Fiche Fille ? Sauvegarde d'un variable [ par liliemumue ] BonjourJe suis entrain de creer un petit logiciel qui imprime des recu , seulement chaque recu doit avoir un numéro différent.Donc je dois avoir un fi


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,952 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales