Silverlight 5 full trust application in the browser

Silverlight има какво да предложи (все още), макар и все по-малко и все по-трудно. Едно от предимствата достъпни във версия 5, които може да се използва е връзка с хардуер/ COM/ native call в браузър. Отделен е въпроса “защо” и “кой” би искал да се направи по този начин. Във всеки случай, ако сте стигнали дотам има няколко gotchas, които е хубаво да се знаят.
За да имате достъп до файлова система, хардуер и т.н., applet-а е нужно да е с повишени права, което става от настройките на проекта : Require elevated trust when running in-browser. Всичко работи идеално, ако аплета се хоства в localhost или 127.0.0.1 – в момента, който се изпълнява в Internet/ Local Internet всичко изведнъж се скапва и се получава грешки от рода на

За да работи нормално и тук са необходими няколко стъпки:

  • аплетът трябва да е подписан (настройки на проекта – Signing)
  • горния сертификат трябва да присъства в Trusted Publishers на всички клиентски компютри (!!!)
  • ако е self-signed, то разбира се трябва да присъства и в Trusted Root authorities
  • в Registry на всяка клиентска машина е необходимо да се позволи изпълнението на аплети с повишени права в бразуър (ако се изпълнява out-of-browser това не е необходимо).

Необходимите ключове, които търпят промяна са

както е описано в MSDN.
Не измислих нищо по-добро от проверка дали аплета върви с повишени права с

и ако не – да прехвърля към страница с допълнителна информация как да се разреши проблема. А именно еднократно изпълнение на изпълним файл (по-добри идеи?), който променя настройките в Registry и инсталира нужните сертификати.

За инсталиране на сертификатите може да се използва например:

а за настройките в registry:

 

Leave a Reply

Your email address will not be published. Required fields are marked *