web-dev-qa-db-fra.com

Quel est le meilleur Environment.SpecialFolder pour stocker les données d'application dans Xamarin.Forms?

Je suis nouveau dans Xamarin.Forms et développement mobile. Je souhaite stocker l'utilisateur et le mot de passe crypté de mon utilisateur d'application dans un fichier sur l'appareil mobile. J'utilise la technologie des formulaires xamarin. Je sais qu'il existe de nombreux dossiers différents. Par exemple:

System.Environment.SpecialFolder.Personal
System.Environment.SpecialFolder.LocalApplicationData
System.Environment.SpecialFolder.MyDocuments

Vous trouverez la liste complète ici: https://msdn.Microsoft.com/en-gb/en-enl/library/system.environment.specialfolder (v = vs.110) .aspx

Quel est le meilleur dossier/catalogue pour le magasin:

  • données d'utilisateur et de mot de passe
  • autres données spécifiques aux applications

??

Edit: J'ai trouvé que "Personal" est bon pour moi, mais si vous avez d'autres réponses, postez-le également. emplacement SpecialFolder.Personal

11
zchpit

Stockage de petites paires de valeurs-clés:

Xamarin.Forms implémente Application.Current.Properties qui stocke les données de valeur-clé dans le stockage local de l'application et l'accès à ces paires clé-valeur est sécurisé pour cette application uniquement qui les a stockées.

Stockage de documents/base de données (Sqlite):

Chaque plate-forme possède sa propre structure de dossiers pour stocker des données/fichiers spécifiques à l'application en dessous.

Android :

Environment.SpecialFolder.Personal & MyDocuments les deux correspond à: /data/data/@PACKAGE_NAME@/files

Environment.SpecialFolder.LocalApplicationData correspond à: /data/data/@PACKAGE_NAME@/files/.local/share

Nous pouvons stocker des fichiers dans l'un des répertoires ci-dessus en fonction de la façon dont ils sont mappés dans le système de fichiers. Aucun des répertoires ci-dessus n'est accessible par une autre application, ni l'utilisateur ne peut y accéder en dehors du monde, sauf si le téléphone est enraciné.

iOS :

Environment.SpecialFolder.Personal, LocalApplicationData & MyDocuments toutes les cartes vers: /Documents

iOS a la structure de répertoires suivante:

/Documents
/Library
/Library/Application Support
/Library/Caches
/tmp

/Documents: Est visible dans iTunes Si le partage iTunes est activé dans info.plist dans l'application. Le contenu peut être sauvegardé par iTunes/iCloud.

/Library: Non visible dans iTunes. Peut être sauvegardé par iTunes/iCloud sauf Caches répertoire.

Les fichiers/données qui n'ont pas besoin d'être exposés à l'utilisateur doivent être stockés dans le répertoire Library. Ex. fichiers de base de données. J'irais pour le répertoire Library pour ajouter de la sécurité avec le cryptage (si nécessaire).

Pour accéder au chemin d'accès à la bibliothèque:

Path.Combine(Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments), "..", "Library");

Pour en savoir plus sur le mappage de chaque énumération avec le répertoire Go Here .

Trouvez les bases sur iOS Bases du système de fichiers .

22
MilanG