В браузере доверенное приложение Silverlight 5

С Новым Silverlight 5 Теперь у нас может быть приложение с повышенным доверием в браузере. Тем не менее, у меня возникли некоторые проблемы с развертыванием приложения.

когда я тестирую приложение из Visual Studio, все работает нормально, потому что он автоматически дает все права, если веб-сайт размещен на локальном компьютере (localhost, 127.0.0.1).

Я видел на MSDN, что я должен выполнить 3 шага, чтобы заставить его работать на любом веб-сайте:

  1. подпись XAP-я сделал это после Microsoft tutorial
  2. установите хранилище сертификатов надежных издателей - я тоже сделал это после учебника Microsoft
  3. добавление раздела реестра со значением AllowElevatedTrustAppsInBrowser.

третий шаг-это тот, в котором я больше всего не уверен. Нужно ли добавлять этот раздел реестра на локальном компьютере или на сервере? Есть ли автоматическая функция в Silverlight для добавления этого ключа или лучше сделать пакет файл?

даже с этими тремя шагами приложение все еще не работает при вызове с другого url-адреса, чем localhost.

кто-нибудь успешно реализовал приложение с повышенным доверием в браузере? Ты видишь, что я делаю не так?

источники:

5 ответов


есть много ресурсов, описывающих этот процесс, в том числе те, которые упомянуты в ответах здесь. Я хотел задокументировать шаги, которые сработали для нас. (Silverlight 5.1.10411.0)

вот шаги, которые мы предприняли для включения в браузере доверенных приложений:

  1. подпишите файл Xap ключом подписи кода.
  2. установите ключ подписи открытого кода в "сертификаты - > текущий пользователь - >надежные издатели"
  3. настройка реестра DWORD ключ AllowElevatedTrustAppsInBrowser = 1 при
    SL 64 bit path: HKLM\Software\Wow6432Node\Microsoft\Silverlight
    SL 32 bit path: HKLM\Software\Microsoft\Silverlight
  4. откройте проект Silverlight в текстовом редакторе и убедитесь, что существуют следующие записи:
    <RequireInBrowserElevation>true</RequireInBrowserElevation>
    <InBrowserSettingsFile>Properties\InBrowserSettings.xml</InBrowserSettingsFile>
    
  5. проверьте, что свойства\InBrowserSettings.xml существует и содержит:
    <InBrowserSettings>
      <InBrowserSettings.SecuritySettings>
        <SecuritySettings ElevatedPermissions="Required" />
      </InBrowserSettings.SecuritySettings>
    </InBrowserSettings>
    

Примечание:

  • если вы используете самозаверяющий сертификат во время тестирования, вам также нужно будет установить его в "сертификаты->текущий пользователь->Доверенные корневые центры сертификации". (Купить один перед тем, как идти в производство)
  • как только вы подписываете файл XAP, вы не можете распаковать и изменить его, поскольку это нарушает подписание (оно должно быть подано в отставку).
  • не забудьте очистить кэш браузера, Если вы кэшируете файл xap.
  • это работало на Windows 7 и Windows 8 Release Preview (режим рабочего стола) с IE, Chrome, Firefox и Safari.

Я успешно создал в браузере Silverlight 5 приложение с повышенными привилегиями fallowing эта статья msdn. Вы всегда можете проверить, имеет ли ваше приложение повышенные privs с:

Application.Current.HasElevatedPermissions

моя проблема в том, что, хотя он работает без проблем в Firefox 14, IE9 должен запускаться как администратор в Windows 7. В настоящее время я ищу способ заставить его работать без выполнения IE в качестве администратора. Если кто-нибудь знает как это сделать буду признателен помощь.

Edit:

Вау. На самом деле ссылка из Aaron McIver post очень помогла мне. Я просто выключил "включить защищенный режим", и теперь он отлично работает без прав администратора. : D


редактирование реестра должно быть на клиентском компьютере; машина, выполняющая приложение Silverlight.

есть демо через XAMLGEEK; поскольку все, что вы выложили, должно привести вас в рабочее состояние. Майк Taulty также отличная прогулка через.


Я хотел бы подключиться с приложением silverlight к сокету на порту 10001 на том же хост-адресе, где размещено приложение.

возможно ли это сделать, ничего не меняя на стороне клиента?


Я также сталкиваюсь с такой же проблемой

когда мы используем тестовый сертификат, который будет работать только на локальной машине.

вы должны подписать ваше приложение с другим сертификатом , и он будет работать.

ссылка на вопрос Silverlight 5 в браузере доверенное приложение