Настройки разрешений ввода / вывода с использованием .net installer

Я создаю программу, которая будет установлена ​​с помощью проекта .net Installer. Программа записывает файлы настроек в свой каталог в каталоге Program Files. Он полагает, что существуют некоторые параметры активного каталога, которые не позволят приложению перенаправиться в этот каталог, если программа запущена ограниченным пользователем. Есть ли возможность изменить настройки папки приложения через установку, чтобы это не было проблемой?

20.08.2008 19:52:41
2 ОТВЕТА
РЕШЕНИЕ

Запись в папку «Program Files» - очень плохая идея, вы должны предположить, что это место «только для чтения» после установки.

Сохранение пользовательских настроек в Program Files вызывает проблемы, если за один раз компьютером пользуются более двух человек (например, Terminal Services), чьи настройки следует сохранить. Хотите ли вы, чтобы другие пользователи знали «ваши» настройки? Что произойдет, если ваша программа записывает настройки в файл как пользователь A, но пользователь B не может редактировать файл? Пользователь B может иметь доступ к каталогу, но не может читать / удалять файл настроек, поскольку он принадлежит пользователю A.

Устаревшие программы win9x часто пишут в папку программных файлов, Windows Vista на самом деле делает несколько хитрых хитростей, чтобы эти программы работали. Когда ваша программа записывает файл, Vista фактически помещает его в другое место, доступное только этому пользователю. То же самое делается для записи реестра в HKLM (или так я обнаружил после нескольких часов отладки ...), и Server 2008 делает то же самое.

Если вам нужно сохранить пользовательские настройки, лучшим вариантом будет сохранение настроек в папке Application Data (переменная среды% APPDATA%)

Если параметры являются общесистемными, то администратор должен установить их после установки или при первом запуске, и они не должны быть перезаписаны ограниченными пользователями.

Итак, чтобы ответить на ваш вопрос - ДА, есть способ сделать то, что вы спросили. Но это плохая идея, она небезопасна и, вероятно, вызовет проблемы в долгосрочной перспективе.

2
22.08.2008 03:47:43

Вы можете написать собственный класс установщика, который может изменить права доступа к папке. Это предполагает, что установка выполняется пользователем, у которого есть разрешение на изменение безопасности файла / каталога.

Лучший вариант - вообще не писать в каталоги под Program Files.

-1
20.08.2008 21:27:17