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

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

Archive for 30 августа, 2011

Толерантность в WordPress

leave a comment »

Только что сломался WordPress (или я довел свою машину до такого состояния). Выдает сообщение о том, что мой браузер устарел (для любых браузеров). Но радует то, что WordPress максимально лоялен к пользователю и предлагает обновить уже установленный (используемый в данный момент) на машине браузер, а не предлагает мне какое-то Г… или что-то в этом роде.

Вот:

clip_image002

или

clip_image004

И т. д.

Written by Sergiy Baydachnyy

30.08.2011 at 22:11

Опубликовано в Internet Explorer 10, Internet Explorer 9

Tagged with

Введение в 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 at 15:59

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

Tagged with