Где хранить данные конфигурации для универсального доступа как администратора, так и других пользователей? - PullRequest
0 голосов
/ 24 октября 2011

Я могу сказать вам, куда не-админам не разрешено писать:

Environment::GetFolderPath(Environment::SpecialFolder::ApplicationData) + "\\Config.ini";
Environment::GetFolderPath(Environment::SpecialFolder::CommonApplicationData) + "\\monitorService\\Config.ini";
Environment::GetFolderPath(Environment::SpecialFolder::ProgramFiles) + "\\monitorService\\Config.ini";

Я возлагал большие надежды на Environment::SpecialFolder::CommonApplicationData, но, к сожалению, для обычных пользователей с ограниченными правами тоже есть ограничения.Мне нужен общий, простой, ошибочный, ноу-хау каталог, в который я могу загрузить данные конфигурации и сохранить их в.Я полагаю, что мог бы поддерживать конфигурационные файлы для каждого пользователя, но я бы предпочел сделать все как можно более простым.

Может быть, я мог бы отложить мой установщик в какой-то области реестра или файловой системе?для всеобщего доступа?Я использую Innosetup и .NET код для установки.Я заметил (IRC), что Firefox заполняет папки «Application Data» для имен и пользователей по умолчанию, поэтому я думаю, что это еще одна возможность.Так как данные конфигурации необходимы службе, может быть слишком много проблем для хранения пары коротких string s и int s в любом другом месте, кроме реестра.

1 Ответ

0 голосов
/ 24 октября 2011

Поскольку никто не ответил, я могу также поставить свое решение, пока буду заниматься реализацией.

Пользователи с ограниченными правами имеют доступ только для записи в HKCU. Это то же самое, что и использование файловой системы - некоторые пользовательские ветви будут доступны для записи. Необходимо своевременно проверять доступ на запись к глобальному файлу конфигурации, когда пользователь входит в систему, а затем делегировать его в локальную конфигурацию пользователя, если он выдает сообщение, но это то, что должно быть сделано. Будучи более легкой в ​​дефрагментации и снижая производительность, я попытаюсь использовать FS до HKCU.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...