6
votes

Meilleur répertoire pour stocker des données d'application avec des droits de lecture \ écriture pour tous les utilisateurs?

jusqu'à ce que Windows Vista, j'ai enregistré mes données d'application dans le répertoire où le programme était situé. L'endroit le plus courant était "C: \ Program Files \ MyApplication". Comme nous le savons, sous Vista et plus tard, l'utilisateur commun n'a pas de droit d'écrire sous le dossier "Fichiers de programme". Donc, ma première idée était de sauvegarder les données de l'application dans le dossier "Tous les utilisateurs \ Application Data". Mais il semble que ce dossier ait aussi écrit des restrictions!

Donc, mes besoins sont les suivants:

  • Le dossier doit exister sous Windows XP et ci-dessus.
  • Tous les utilisateurs du système doivent avoir lu \ Ecrire des droits de création sur ce dossier et ses sous-dossiers et ses fichiers.
  • Je veux avoir seulement une copie de fichiers \ fichiers pour tous les utilisateurs.

0 commentaires

3 Réponses :



1
votes

Il n'y a pas de tel endroit. Même sur Windows XP (et probablement 2000 également), aucun tel emplacement n'existait jamais; Nous pensons simplement que cela a fait parce que nous avons tous couru avec des privilèges administratifs. Ce n'est pas avant que Vista nous oblige à courir en tant qu'utilisateur limité que nous réalisons nos hypothèses incorrectes. Vous allez devoir définir explicitement les autorisations sur votre répertoire.


3 commentaires

Merci Luke, je suppose que je vais configurer des privilèges lors du processus d'installation sous un compte administrateur.


S'il n'y a pas de tel endroit, alors quel est le système .net.windows.forms.appllication.commonappdatapath (résout généralement C: \ Documents et paramètres \ Tous les utilisateurs \ Application Data \ CompanyName \ ProductName \ VersionNum)?


Les autorisations par défaut pour tous les utilisateurs \ Données d'application n'accordent pas un accès complet aux comptes d'utilisateurs limités. Si un utilisateur administratif crée un fichier là-bas, un utilisateur limité n'aura pas accès en écriture à ce fichier. Il semble que la question initiale tentait d'accomplir exactement cela, alors modifier le DACL est nécessaire.



0
votes

Je créerais un sous-dossier comme tous les utilisateurs \ Data de l'application \ YourAppname \ Partagés, de sorte qu'il est clair que juste ce dossier contiendra des fichiers écrites par tous les utilisateurs, configurant les privilèges de l'installateur.


0 commentaires