Рекомендуемое расположение файла, которое смогут редактировать все пользователи Windows?

StackOverflow https://stackoverflow.com/questions/2098427

Вопрос

Я создаю продукт, который включает в себя

  • данные кэширования службы Windows на локальном компьютере,
  • пользовательские процессы читают эти данные и записывают свои собственные данные,
  • служба, в свою очередь, записывает эти данные обратно на сервер.

Где мне следует поместить файлы данных для этого, чтобы они были доступны всем пользователям и были доступны для чтения/записи?Программное обеспечение будет работать в корпоративной среде, где рабочие столы иногда довольно заблокированы, поэтому, например, у некоторых пользователей не будет прав на запись в C:\Program Files.

Я не думаю, что C:\Documents And Settings\All Users\Application Data\ является хорошим кандидатом - я думаю, что по умолчанию только администраторы и опытные пользователи имеют доступ сюда для записи.

Я мог бы использовать папку Application Data каждого пользователя, но это было бы немного затруднительно, поскольку каждую машину могли бы использовать разные люди...поэтому было бы проще, если бы было только одно общее местоположение.

Я занимаюсь разработкой на C#.net 2005, но это, вероятно, не слишком актуально.

Это было полезно?

Решение

К сожалению, у вас нет реального выбора.Вы должны (действительно должны) вызовать ShgetSpecialFolderLocation, чтобы получить путь к C: Users public appdata (это имя папки, которую вы связаны выше, но на Vista и, возможно, Windows 7), тогда вы должны создать свою собственную папку приложения в этом.И затем вы ДОЛЖНЫ использовать API-интерфейсы безопасности для изменения ACL созданной папки.

В системе НЕТ папки со списком управления доступом по умолчанию, который позволяет нескольким пользователям, не являющимся администраторами, читать И записывать одни и те же файлы.

c:\users\public\AppData является ближайшим.Изменение ACL папки приложения кажется лучшим подходом.Конечно, если прибегнуть к модификации ACL, папку действительно можно будет создать где угодно.Но это может удивить системных администраторов и привести к появлению дыр в безопасности.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top