Создание зависящего от рабочего стола приложения с помощью Silverlight

#silverlight #browser-security

#silverlight #браузер-безопасность

Вопрос:

Задача:

Например, у меня есть исполняемый файл Windows convertvideo.exe . Это инструмент командной строки для конкретного преобразования видео.

Я хочу, чтобы мои клиенты могли легко использовать его на любом компьютере без установки. Вариант использования должен быть следующим: клиент переходит на веб-страницу, на которой размещено приложение silverlight. Приложение сообщает клиенту нажать кнопку «поместить исполняемый файл во временную папку». При нажатии исполняемый файл развертывается (загружается, копируется) на клиентском компьютере. Затем приложение silverlight запрашивает у пользователя список файлов для конвертации, а также путь к файлам результатов. Пользователь нажимает кнопку convert, и приложение silverlight запускает (на клиентском компьютере) convertvideo.exe с предоставленными параметрами для выполнения преобразования.

Вопрос:

Возможно ли это с правами доступа к файловой системе, которые приложение Silverlight имеет из браузера?

Ответ №1:

Если вам нужно встроенное в браузер приложение Silverlight, это невозможно в Silverlight 4. Это будет возможно в браузере с Silverlight 5, но он еще не выпущен.

Однако это может быть достигнуто с помощью приложения вне браузера в Silverlight 4. Советы о том, как доставить пользователям приложение вне браузера, см. В разделе «Создание приложения вне браузера». Процесс «установки» — это просто диалоговое окно UAC, довольно минимальное.

При запуске из браузера вы можете объединить свой .exe в качестве ресурса и сохранить его в известном месте на диске (осторожно, SL4 не имеет полного доступа к диску, только к определенным областям, таким как «Мои документы» или изолированное хранилище). Для запуска .exe вы можете использовать COM:

 using (dynamic shell = AutomationFactory.CreateObject("WScript.Shell"))
{
    shell.Run(@"PathToExeconvertvideo.exe arg1 arg2 etc...");
}
  

Комментарии:

1. Мне нужно решение в браузере. Что такого особенного в SL5, что позволило бы мне сделать это в браузере? Какое ключевое слово я должен использовать в Google, чтобы узнать об этой конкретной функциональности в SL5?

2. Возможность выполнения COM-взаимодействия (которое, по сути, позволяет выполнять произвольный код, как описано в приведенном выше примере) требует повышенного доверия, которое доступно только для приложений OOB в SL4. В SL5 повышенное доверие будет доступно и для приложений в браузере. См. xamlgeek.net/2011/04/20/silverlight-5-elevated-trust-in-browser