Блог Сергея Байдачного

Мой блог о технологиях

Введение в Silverlight 5 (часть 2)

3 комментария

Повышение полномочий для приложений в браузере

В предыдущих версиях Silverlight, приложения, которые получали возможность работать вне браузера, могли претендовать на дополнительные (повышенные) привилегии. Это позволяло подобным приложениям получать доступ к диску, расширять изолированное хранилище без уведомления пользователя, реализовывать доступ к клавиатуре в полноэкранном режиме и многое другое. Между тем, многие разработчики желали бы иметь подобную функциональность и для приложений, работающих в браузере. Естественно речь идет о корпоративных приложениях, которые доступны только сотрудникам филиалов и при этом могут часто обновляться. В связи с этим в Silverlight 5 появилась возможность создавать приложения с повышенными полномочиями, работающими в окне браузера. Рассмотрим процедуру создания таких приложений.

Шаг 1. Приложение необходимо подписать сертификатом, что вполне можно сделать из оболочки Visual Studio в настройках проекта (вкладка Signing).

 

image

 

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

Шаг 2. Далее необходимо развернуть сертификат на машинах, где будет работать Ваше Silverlight-приложение. Если Вы хотите протестировать функциональность на рабочей машине, то это можно легко сделать, нажав кнопку More Details в диалоге выше, перейдя к параметрам сертификата:

 

image

Шаг 3. На следующем этапе нужно у всех клиентов разрешить запуск приложений в браузере с повышенными полномочиями. Это можно сделать, установив значение AllowElevatedTrustAppsInBrowser (DWORD) в 0х00000000 (disabled) или 0x00000001(enabled) в ключах HKEY_LOCAL_MACHINE\Software\Microsoft\Silverlight\ (для 32 бит) или HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Silverlight\ (для 64 бит).

Шаг 4. Необходимо внести изменения в конфигурационный файл таким образом, чтобы Ваше приложение при работе с браузером запрашивало дополнительные полномочия. Это легко можно сделать в настройках проекта, выбрав соответствующую галочку:

 

image

 

После этих действий, Visual Studio сгенерирует дополнительный конфигурационный файл следующего содержимого:

 

   1:  <InBrowserSettings>
   2:     <InBrowserSettings.SecuritySettings>
   3:        <SecuritySettings ElevatedPermissions="Required" />
   4:     </InBrowserSettings.SecuritySettings>
   5:  </InBrowserSettings>

 

Вот и все. Теперь Ваши приложения (подписанные сертификатом), будут запускаться в браузере с дополнительными полномочиями, включая полную поддержку клавиатуры в полноэкранном режиме, поддержку элементов WebBrowser и NotificationWindow и др.

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

Поддержка нескольких окон

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

Ниже приведен небольшой код, который, внутри конструктора главного окна, генерирует дочернее окно и делает его видимым:

 

   1:  public MainPage()
   2:  {
   3:  InitializeComponent();
   4:   
   5:     Window childWindow = new Window();
   6:     childWindow.Height = 400;
   7:     childWindow.Width = 600;
   8:     childWindow.Top = 30;
   9:     childWindow.Left = 30;
  10:     childWindow.Title = "Child Window";
  11:     childWindow.Visibility = Visibility.Visible;
  12:  }

 

В данном примере дочернее окно создается с размерами 600 на 400, при этом верхний левый его угол будет находит в позиции (30, 30), относительно экрана системы (не родительского окна). При этом обратите внимание на то, что созданное окно поддерживается панелью задач Windows 7:

 

image

 

Доступ к файловой системе для приложений с повышенными привилегиями

Технология Silverlight 4 поддерживала возможность приложениям с повышенными привилегиями получать доступ к файловой системе пользователя. Правда, доступ был ограничен лишь несколькими папками. Так, в режиме с повышенными привилегиями, приложения получают полный контроль к специальным папкам, ассоциированными с пользователем: MyDocuments, MyVideos, MyPictures, MyMusic. Пути к указанным папкам можно получить, используя статический класс Environment. При этом нужно отметить, что SilverLight-приложение работает только с папками, но не с библиотеками (Windows 7).

В Silverlight 5 появилась возможность взаимодействовать со всей файловой системой пользователя. Речь идет как о чтении файлов, так и о записи.

Реклама

Written by Sergiy Baydachnyy

30.08.2011 в 15:59

Опубликовано в SilverLight

Tagged with

комментария 3

Subscribe to comments with RSS.

  1. Спасибо, прочитал про пункт 3, понял что решение не подходит для массового приложения, жаль конечно, но хоть избавил меня от разбирательств почему удаленно ниче не работает =)

    Аноним

    21.01.2013 at 11:39

  2. Большое спасибо, автору материала! Много полезного у Вас! Добавил в rss теперь буду чаще приходить. Пребольшая просьба: переносите слова на абзацы чаще, читать не удобно. А так все отлично, Люблю подобные сайты посмотреть в особенности после тяжелого дня. ещё раз спасибо, и удачи!

    WebStees

    26.12.2013 at 22:26

  3. удалите пожалуйста комментарий содержащий ссылку на lifewebs.ru

    Ирина

    02.11.2014 at 13:18


Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: