Technique de sauvegarde données sensibles

Résolu
cs_fcolo Messages postés 201 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 20 février 2007 - 28 avril 2006 à 17:53
cs_fcolo Messages postés 201 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 20 février 2007 - 8 juin 2006 à 15:30
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

dgouttegattat Messages postés 129 Date d'inscription mardi 22 novembre 2005 Statut Membre Dernière intervention 30 décembre 2007 3
28 avril 2006 à 18:56
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.
3
cs_fcolo Messages postés 201 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 20 février 2007 2
8 juin 2006 à 15:30
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
0
Rejoignez-nous