2011-12-20 9 views
8

Con el nuevo Silverlight 5, ahora podemos tener una aplicación In-Browser de confianza elevada. Sin embargo, tengo algunos problemas para implementar la aplicación.En la aplicación de confianza del navegador Silverlight 5

Cuando estoy probando la aplicación desde Visual Studio, todo funciona bien porque automáticamente otorga todos los derechos si el sitio web está alojado en la máquina local (localhost, 127.0.0.1).

vi en MSDN que tengo que seguir 3 pasos para hacer que funcione en cualquier sitio web:

  1. firmó el XAP - lo hice siguiendo el tutorial Microsoft
  2. Instalar el almacén de certificados de editores de confianza - Lo hice también siguiendo el Tutorial de Microsoft
  3. Añadiendo una clave de Registro con el valor AllowElevatedTrustAppsInBrowser.

El tercer paso es el que no estoy seguro. ¿Necesitamos agregar esta clave de registro en la máquina local o en el servidor? ¿Hay alguna función automática en Silverlight para agregar esta clave o es mejor hacer un archivo por lotes?

Incluso con esos tres pasos, la aplicación aún no funciona cuando se llama desde otra url que localhost.

¿Alguien ha implementado con éxito una aplicación de confianza elevada en el navegador? ¿Ves lo que estoy haciendo mal?

Fuentes:

+1

¿Ha encontrado una solución a su problema? Estoy enfrentando exactamente el mismo problema ... Gracias –

+0

Ver la respuesta de Fares Noueihed. Señala que los certificados autofirmados también deben agregarse a la autoridad de certificación de raíz de confianza. – jmc

Respuesta

12

Existen muchos recursos geniales que describen este proceso, incluidos los que se mencionan en las respuestas aquí. Quería documentar los pasos que funcionaron para nosotros. (Silverlight 5.1.10411.0)

Estos son los pasos que tomamos para permitir aplicaciones en el navegador de confianza:

  1. Firmar el archivo Xap con el código de clave de firma.
  2. Instalar código público clave de firma en "certificados-> User-actual> Editores de confianza"
  3. Establecer el registro DWORD clave AllowElevatedTrustAppsInBrowser = 1 en
    SL 64 bit path: HKLM\Software\Wow6432Node\Microsoft\Silverlight
    SL 32 bit path: HKLM\Software\Microsoft\Silverlight
  4. Abra el proyecto de Silverlight en un editor de texto y verificar las siguientes entradas existe:
    <RequireInBrowserElevation>true</RequireInBrowserElevation> 
    <InBrowserSettingsFile>Properties\InBrowserSettings.xml</InBrowserSettingsFile> 
    
  5. Compruebe que Properties \ InBrowserSettings.existe xml y contiene:
    <InBrowserSettings> 
      <InBrowserSettings.SecuritySettings> 
        <SecuritySettings ElevatedPermissions="Required" /> 
      </InBrowserSettings.SecuritySettings> 
    </InBrowserSettings> 
    

Nota:

  • Si utiliza un certificado firmado durante la prueba, también tendrá que instalar en "certificados-> el usuario actual> Autoridades de certificación raíz de confianza ". (Compre uno antes de entrar en producción)
  • Una vez que haya firmado un archivo XAP no podrá descomprimirlo y modificarlo, ya que al hacerlo se romperá la firma (se debe renunciar).
  • No olvide borrar la caché de su navegador si está almacenando en caché el archivo xap.
  • Esto funcionó en Windows 7 y Windows 8 Release Preview (modo de escritorio) con IE, Chrome, Firefox y Safari.
+0

Bingo por señalar el auto firmado gotcha. Esto parece hacer tropezar a muchas personas. – jmc

+0

+1 El truco para mí fue instalar el certificado de firma en Editores de confianza (el certificado de autoridad emisora ​​en Editores de confianza y Autoridades de certificación de raíz de confianza no fue suficiente). – gius

+0

¿Podría explicar si necesitamos algún certificado para subir archivos en SL en general? –

1

La edición del registro tiene que estar en la máquina del cliente; la máquina que ejecuta la aplicación Silverlight.

Hay un demo available a través del XAMLGEEK; como todo lo que expusiste debería ponerte en estado de trabajo. Mike Taulty también tiene un excellent walk through.

+0

¿Crees que el problema es que estoy usando un certificado creado? ¿Tengo que comprar uno? – Philippe

+0

No, no deberías necesitar comprar uno. –

+0

No, no necesita comprar uno, pero si crea su propio certificado, también debe agregarlo a la autoridad de certificación de raíz de confianza. Agregar su propio certificado autofirmado solo a los editores de confianza no funcionará. (ver la respuesta de Fares Noueihed, es de lejos el más completo y señala este punto bastante importante) – jmc

2

He creado con éxito la aplicación Silverlight 5 en el navegador con privilegios elevados en el barbecho this msdn article. Siempre puede comprobar si su aplicación ha elevado privs con:

Application.Current.HasElevatedPermissions 

Mi problema es que mientras funciona sin problemas en Firefox 14, IE9 se debe ejecutar como administrador en Windows 7. actualmente estoy buscando una forma de hacerlo funcionar sin ejecutar IE como administrador. Si alguien sabe cómo hacer esto, agradecería la ayuda.

Editar:

Wow. En realidad, el enlace de la publicación de Aaron McIver me ayudó mucho. Acabo de cambiar "Habilitar modo protegido" y ahora funciona perfectamente sin derechos de administrador. : D

0

Me gustaría conectarme con la aplicación silverlight al socket en el puerto 10001 en la misma dirección de host donde se aloja la aplicación.

¿Es posible hacerlo sin cambiar nada en el lado del cliente?

0

soy también enfrentan mismo tipo de problema

cuando usamos certificado de prueba que funcionará sólo para la máquina local.

tienes que firmar tu aplicación con otro certificado, y funcionará.

vínculo de la pregunta Silverlight 5 In browser trusted application

Cuestiones relacionadas