может дать административные привилегии папке приложения при создании установщика Windows - PullRequest
0 голосов
/ 25 мая 2018

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

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Возможно, вам необходимо уточнить ваш вопрос.Здесь есть некоторое совпадение с ответом Стейна, но для расширения ...

Папки не получают административных привилегий.Программы могут получить повышенные привилегии.Папки могут иметь права доступа, которые делают их более (или менее) доступными для программ с различными привилегиями.Поэтому:

  1. Если вы хотите, чтобы установщик каким-то образом разрешил вашей программе запускаться от имени администратора (с повышенными правами), то установщик не сможет этого сделать.Сама программа нуждается в манифесте повышения прав, который запрашивает повышение прав администратора, что означает, что обычные пользователи с ограниченными правами не могут ее запустить.

  2. Если проблема в том, что у вас есть (или вы хотите создать) файлы данных в папке Program Files, и ваше приложение не может записывать в них, когда его запускают ограниченные пользователи, тогда программа сохраняетэти файлы в неправильном месте.Папки имеют такие имена, как «Данные приложения пользователя», потому что это то, для чего они должны использоваться.Изменение безопасности папки Program Files, содержащей код вашей программы, обычно считается небезопасным, поскольку пользователи с ограниченными правами могут изменять файлы кода.Правила сертификации являются полезным руководством:

"10.3 Данные вашего приложения, которые должны быть доступны пользователям на компьютере, должны храниться в ProgramData

10.4 Приложения вашего приложенияданные, которые предназначены только для конкретного пользователя и не подлежат передаче другим пользователям компьютера, должны храниться в папке «Пользователи \\ AppData»

Вы не сказали, какой инструмент вы используете для создания своегоФайл MSI, который может быть полезен, если у вас есть дополнительные вопросы.

0 голосов
/ 25 мая 2018

Более продолжительная запись : System.UnauthorizedAccessException при запуске .exe в программных файлах (несколько других опций, помимо перечисленных ниже).


Вы можете изменить ACL для папки установки, делая ее доступной для записи обычным пользователям, или вы можете использовать манифест , чтобы требовать права администратора для запуска вашего приложения (обычные пользователи обычно не могут поднять какие-либо приложения, как это - если они не вводят пароль администратора).Однако это очень плохой дизайн - до уровня, на котором ваше приложение может быть отклонено для использования в определенных средах.

Предпочтительным подходом может быть сохранение файлов приложения (данных и настроек) вМеста, доступные для записи обычным пользователям, без каких-либо изменений или настроек в вашей настройке.Вы можете написать в My Documents или где-нибудь в %UserProfile% - например.

Пожалуйста, посмотрите этот существующий ответ для более подробного объяснения: C ++ MSI Пакетные права администратора пакета .

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