Правила для многопользовательских приложений WinForms в Vista - PullRequest
1 голос
/ 27 сентября 2008

У нас есть установщик MSI для приложения .Net WinForms для Windows XP, который устанавливается и запускается только как администратор. Пользователи должны войти в приложение, когда оно запускается. Клиенты хотят, чтобы он устанавливался и работал под учетной записью пользователя под Vista, и использовал свою учетную запись Windows.

Предварительный просмотр кода показывает множество проблем; установщик записывает данные в реестр и устанавливает приложение в C: \ Program Files. Приложение сохраняет пользовательские настройки в реестре, записывает данные в C: \ Documents and Settings \ All Users \ и создает временные файлы в C:.

Полагаю, первое, что нужно сделать, это сохранить файлы данных в System.Environment.CommonApplicationData и пользовательские настройки в System.Environment.LocalApplicationData. Может ли учетная запись пользователя установить приложение в System.Environment.ProgramFiles?

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

Существует ли книга или веб-сайт, в котором подробно описывается, что требуется для создания приложения WinForms, которое подчиняется правилам для нескольких пользователей в Vista?

Редактировать: Я проверил с клиентом, и требование установить только, поскольку учетная запись пользователя является твердой, они удаляют доступ администратора из обслуживающего персонала. Это исключает компоненты, установленные администратором, и установки для каждого компьютера.

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

Существует ли книга или сайт, описывающий все правила, которым должны следовать пользовательские приложения Vista?

Ответы [ 3 ]

1 голос
/ 27 сентября 2008

У вас будут проблемы с разрешением установки приложения любым пользователем и одновременным доступом к общим файлам данных. Это связано с тем, что первое требование подразумевает установку для каждого пользователя, а второе - установку для каждого компьютера. Позвольте мне объяснить ...

Стандартные (основанные на MSI) установщики могут быть определены как для пользователя, так и для компьютера:

  • Установки для каждого пользователя помещают установленные файлы программы в домашний каталог пользователя. Приложение установлено только для этого пользователя. Другие пользователи даже не видят ни программы в меню «Пуск», ни «Установка и удаление программ». Если им нужна программа, они должны сами установить ее в своей области для каждого пользователя. Таким образом, может быть установлено несколько копий программы, и каждая из них изолирована от других. Этот тип установки может выполняться обычными пользователями (не администраторами), поэтому они не могут писать в общие области, такие как «Program Files» или «All Users».
  • Установка для каждого компьютера может изменять общие области файловой системы (например, «Program Files» или «All Users»). Каждый пользователь видит одну и ту же копию программы в меню «Пуск» и «Установка и удаление программ». Только администратор может выполнять этот тип установки.
1 голос
/ 27 сентября 2008

"приложение должно быть установлено и удалено любым пользователем" «все пользователи используют одни и те же файлы данных»

У вас будут проблемы с выполнением обоих этих требований. Новые функции безопасности Vista предназначены для того, чтобы пользователи не попирали друг друга (и систему).

О единственном способе выполнения этой работы, который я могу придумать, - это способ, подобный тому, как мы обрабатывали подобное требование в среде Windows 2000. Вы создаете два компонента - пользовательскую часть приложения и системный компонент, который управляет информацией, которой обмениваются пользователи. Администратор устанавливает компонент «Общий доступ» (который включает в себя службу Windows для его запуска), а каждый пользователь устанавливает компонент «Пользователь».

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

Конечно, у вас также может быть инструмент, который пользователь запускает в качестве администратора, для создания вашей папки в определенном месте и предоставления необходимых разрешений безопасности. Это может сработать и для ваших целей.

0 голосов
/ 29 сентября 2008

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

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

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

...