Technique de sauvegarde données sensibles [Résolu]

Signaler
Messages postés
201
Date d'inscription
mercredi 8 février 2006
Statut
Membre
Dernière intervention
20 février 2007
-
Messages postés
201
Date d'inscription
mercredi 8 février 2006
Statut
Membre
Dernière intervention
20 février 2007
-
Bonjour,

Je réalise une apllication qui consiste à visualisée le flux vidéo de caméra IP.
L'utilisateur doit fournir des paramétres pour réceptionner ce flux (IP, path, user,password) et entrer des options d'affichage (nb img/sec).
A chaque fois que l'utilisateur ouvre le programme, il doit rentrer à nouveau ces informations.
Je souhaite donc enregistrer ces préférences.
Or, le fait que je lui demande un mot de passe, je ne peux pas sauvegarder dans un fichier .ini car tout le monde peut voir son mot de passe.
Je recherche donc une technique pour faire celà.

En parcourant le forum, j'ai vu qu'il existe un IsolateStorage, un lieu ou seul l'utilisateur et l'assembly peuve avoir accès. Je me suis dis c'est un bon endroit :). Mais, d'après ce que j'ai compris, les données doivent être sérialisé.
Cette source sur code project (http://www.codeproject.com/dotnet/appdata.asp) en donne un exemple.
Malheuresement, j'utilise une structure et il semblerai qu'elle ne puisse pas etre sérialisable :
Exception System.Runtime.Serialization.SerializationException was thrown in debugee:
Type 'viewCamOnSystray.MainForm+camera' in Assembly 'viewCamOnSystray, Version=1.0.2309.30337, Culture=neutral, PublicKeyToken=null' is not marked as serializable.

Ma structure est la suivante:
        /// <summary>
        /// Structure pour les options des caméras
        /// </summary>
        public struct camera
        {
            public String name; //son nom
            public String url; //l'url de son flux vidéo
            public String user; //le nom pour passer son htaccess
            public String pass; //le mot de pass pour passer le htaccess
        }
Si vous avez une idée pour m'aider.

Ou tout autre pour la sauvegarde de données sensible.
Je vous en remercie

f.colo

2 réponses

Messages postés
129
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
30 décembre 2007
3
Bonjour fcolo,


Il n'est pas nécessaire de sérialiser les données pour utiliser l'IsolatedStorage : il te suffit de créer un IsolatedStorageFileStream et de t'en servir comme tu te servirais d'un Stream "normal". Exemple:


<hr>
IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForAssembly();
// Pour enregistrer
StreamWriter writer = new StreamWriter(new IsolatedStorageFileStream("nomdefichier", FileMode.Create, FileAccess.Write, store);
// Pour lire
StreamReader reader = StreamReader(new IsolatedStorageFileStream("nomdefichier", FileMode.Open, FileAccess.Read, store);
<hr>

Une toute autre possibilité consiste à utiliser les fonctionnalités de configuration offertes par le framework (si tu utilises la version 2.0).
Pour cela, va dans le Project Designer de VS2005, dans l'onglet Settings, et crée des settings pour chacune des informations que tu veux enregistrer, et précise que ces settings doivent être propres à chaque utilisateur (colonne Scope = User).
Ces settings sont accessibles (en lecture/écriture) depuis le code via les propriétés de l'objet Properties.Settings.Default.
Les valeurs sont situés dans le fichier %HOMEPATH%\Local Settings\Application\XXX\YYY\user.config, où XXX est un nom unique généré à partir du nom fort de l'assembly et YYY représente le numéro de version de l'assembly.
Messages postés
201
Date d'inscription
mercredi 8 février 2006
Statut
Membre
Dernière intervention
20 février 2007
2
Effectivement, l'emplacement est facilement trouvé et ce n'est aps top pour y placer des donnée sensible comme les mot de passe si ils y sont affiché en clair.
Chez moi, l'emplacement est:
C:\Documents and Settings\Frederic\Local Settings\Application Data\IsolatedStorage\jf2ii15l.xi5\ws2pembm.uyh\Url.gf2brf3xedditwi40054t3bmziil2olt\AssemFiles
avec les numéos de la fin qui changent mais bon, comme chez moi il n'y en a pas beaucoup, j'ai pus voir tous les fichiers xml avec les mot de passe dedans ... pas top quoi.
Par contre c'est dans mon user windows, donc il n'y a que les personnes utilisant mon compte qui peuvent les voirs, mais la securité n'est pas au top.
Je vais regardé avec la methode que l'on ma donné ICI.

f.colo