#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