В браузере доверенное приложение Silverlight 5
С Новым Silverlight 5 Теперь у нас может быть приложение с повышенным доверием в браузере. Тем не менее, у меня возникли некоторые проблемы с развертыванием приложения.
когда я тестирую приложение из Visual Studio, все работает нормально, потому что он автоматически дает все права, если веб-сайт размещен на локальном компьютере (localhost, 127.0.0.1).
Я видел на MSDN, что я должен выполнить 3 шага, чтобы заставить его работать на любом веб-сайте:
- подпись XAP-я сделал это после Microsoft tutorial
- установите хранилище сертификатов надежных издателей - я тоже сделал это после учебника Microsoft
- добавление раздела реестра со значением
AllowElevatedTrustAppsInBrowser
.
третий шаг-это тот, в котором я больше всего не уверен. Нужно ли добавлять этот раздел реестра на локальном компьютере или на сервере? Есть ли автоматическая функция в Silverlight для добавления этого ключа или лучше сделать пакет файл?
даже с этими тремя шагами приложение все еще не работает при вызове с другого url-адреса, чем localhost.
кто-нибудь успешно реализовал приложение с повышенным доверием в браузере? Ты видишь, что я делаю не так?
источники:
5 ответов
есть много ресурсов, описывающих этот процесс, в том числе те, которые упомянуты в ответах здесь. Я хотел задокументировать шаги, которые сработали для нас. (Silverlight 5.1.10411.0)
вот шаги, которые мы предприняли для включения в браузере доверенных приложений:
- подпишите файл Xap ключом подписи кода.
- установите ключ подписи открытого кода в "сертификаты - > текущий пользователь - >надежные издатели"
- настройка реестра DWORD ключ AllowElevatedTrustAppsInBrowser = 1 при
SL 64 bit path: HKLM\Software\Wow6432Node\Microsoft\Silverlight
SL 32 bit path: HKLM\Software\Microsoft\Silverlight
- откройте проект Silverlight в текстовом редакторе и убедитесь, что существуют следующие записи:
<RequireInBrowserElevation>true</RequireInBrowserElevation> <InBrowserSettingsFile>Properties\InBrowserSettings.xml</InBrowserSettingsFile>
- проверьте, что свойства\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 в браузере доверенное приложение