Question

Je construis un produit qui implique

  • un cache de données de service Windows sur la machine locale,
  • processus utilisateur lecture que les données et l'écriture de leurs propres données,
  • le service à son tour écrit en arrière que les données à un serveur.

Où dois-je mettre les fichiers de données pour cela, de telle sorte qu'ils vont être partagés par tous les utilisateurs et lecture / écriture? Le logiciel fonctionnera dans un environnement d'entreprise où les ordinateurs de bureau sont parfois assez verrouillés, de sorte que, par exemple, certains utilisateurs ne seront pas des droits d'écriture sur C:. \ Program Files

Je ne pense pas que C: \ Documents and Settings \ All Users \ Application Data \ est un bon candidat - je pense par défaut seulement Admins et Utilisateurs avec pouvoir ont accès en écriture ici

.

Je pourrais utiliser l'application dossier de données de chaque utilisateur, mais ce serait un peu pénible car différentes personnes pourraient utiliser chaque machine ... il serait plus simple s'il y avait un seul emplacement partagé.

Je développe en C # .net 2005, mais c'est probablement pas trop utile.

Était-ce utile?

La solution

Malheureusement, vous avez pas d'autre choix réel. Vous devez (vous devez vraiment) appeler SHGetSpecialFolderLocation pour obtenir le chemin d'accès c: \ users \ public \ AppData (qui est le nom du dossier que vous avez lié ci-dessus, mais sur Vista et Windows 7 peut-être) Ensuite, vous devez créer votre propre dossier de l'application qui y sont. Et puis, vous devez, utiliser les API de sécurité pour modifier l'ACL du dossier créé.

Il n'y a pas de dossier sur le système avec une ACL par défaut qui permet à plusieurs utilisateurs d'administrateur non à lire et à écrire les mêmes fichiers.

c: \ users \ public \ AppData est le plus proche. Modification de l'ACL d'un dossier d'application semble ici la meilleure approche. Bien sûr, une fois que l'on a eu recours à une modification ACL, le dossier pourrait vraiment être créé nulle part. Mais cela pourrait surprendre les administrateurs système et entraîner des failles de sécurité weired.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top