2011-12-20 11 views
8

Con il nuovo Silverlight 5, ora è possibile disporre di un'applicazione di attendibilità elevata nel browser. Tuttavia, si verificano alcuni problemi per distribuire l'applicazione.Nell'applicazione attendibile del browser Silverlight 5

Quando eseguo il test dell'applicazione da Visual Studio, tutto funziona correttamente perché dà automaticamente ogni diritto se il sito Web è ospitato sul computer locale (localhost, 127.0.0.1).

ho visto su MSDN che devo seguire 3 passaggi per farlo funzionare su qualsiasi sito web:

  1. firmato il XAP - ho fatto seguendo il tutorial di Microsoft
  2. Installare dei certificati Autori attendibili - L'ho fatto anche seguendo il tutorial Microsoft
  3. Aggiunta di una chiave di registro con il valore AllowElevatedTrustAppsInBrowser.

Il terzo passo è quello di cui sono più incerto. Dobbiamo aggiungere questa chiave di registro sul computer locale o sul server? C'è una funzione automatica in Silverlight per aggiungere questa chiave o è meglio creare un file batch?

Anche con questi tre passaggi, l'applicazione non funziona ancora quando viene chiamata da un altro url di localhost.

Qualcuno ha implementato con successo un'applicazione di sicurezza elevata nel browser? Vedi cosa sto sbagliando?

Fonti:

+1

Hai trovato una soluzione al problema? Sto affrontando lo stesso identico problema ... Grazie –

+0

Vedi le risposte Risposta a Noueih. Indica inoltre che i certificati autofirmati devono essere aggiunti all'autorità di certificazione dell'autorità di certificazione attendibile. – jmc

risposta

12

Ci sono molte grandi risorse che descrivono questo processo, incluse quelle citate nelle risposte qui. Volevo documentare i passaggi che hanno funzionato per noi. (Silverlight 5.1.10411.0)

Ecco i passi che abbiamo preso per consentire alle applicazioni In-Browser attendibili:

  1. Firmare il file Xap con il codice di chiave di firma.
  2. Installare il codice chiave pubblica firma in "Certificati-> attuale User-> Editori attendibili"
  3. Impostare il Registro di sistema DWORD chiave AllowElevatedTrustAppsInBrowser = 1 a
    SL 64 bit path: HKLM\Software\Wow6432Node\Microsoft\Silverlight
    SL 32 bit path: HKLM\Software\Microsoft\Silverlight
  4. Aprire il progetto Silverlight in un editor di testo e verificare le seguenti voci esiste:
    <RequireInBrowserElevation>true</RequireInBrowserElevation> 
    <InBrowserSettingsFile>Properties\InBrowserSettings.xml</InBrowserSettingsFile> 
    
  5. Verificare che Proprietà \ InBrowserSettings.xml esiste e contiene:
    <InBrowserSettings> 
      <InBrowserSettings.SecuritySettings> 
        <SecuritySettings ElevatedPermissions="Required" /> 
      </InBrowserSettings.SecuritySettings> 
    </InBrowserSettings> 
    

Nota:

  • Se si utilizza un certificato auto firmato durante il test, avrete anche bisogno di installarlo in "Certificati-> attuale user-> Autorità di certificazione radice ". (Acquistane uno prima di entrare in produzione)
  • Dopo aver firmato un file XAP, non è possibile decomprimerlo e modificarlo, in quanto ciò interrompe la firma (deve essere rassegnato).
  • Non dimenticare di svuotare la cache del browser se si memorizza il file xap nella cache.
  • Questo ha funzionato su Windows 7 e Windows 8 Release Preview (modalità desktop) con IE, Chrome, Firefox e Safari.
+0

Bingo per indicare il gotcha autofirmato. Questo sembra far inciampare molte persone. – jmc

+0

+1 Il trucco per me era installare il certificato di firma in Publisher attendibili (il certificato dell'autorità emittente nelle Autorità di certificazione attendibili e Autorità di certificazione attendibili non era sufficiente). – gius

+0

Potresti spiegare per favore se abbiamo bisogno di qualche certificato per caricare file in SL in generale? –

1

La modifica del registro deve essere sulla macchina client; la macchina che esegue l'applicazione Silverlight.

C'è un demo available tramite il numero XAMLGEEK; come tutto ciò che hai preparato dovrebbe metterti in uno stato di lavoro. Mike Taulty ha anche un excellent walk through.

+0

Pensi che il problema sia che sto usando un certificato creato? Devo comprarne uno? – Philippe

+0

No non dovresti aver bisogno di comprarne uno. –

+0

No, non è necessario acquistarne uno, ma se si crea il proprio certificato, è necessario aggiungerlo all'Autorità di certificazione radice attendibile. Aggiungendo il proprio certificato autofirmato solo agli editori attendibili non funzionerà. (vedi Fares Noueihed answer, è di gran lunga il più completo e sottolinea questo punto piuttosto importante) – jmc

2

Ho creato con successo l'app Silverlight 5 nel browser con privilegi elevati a carico di this msdn article. Puoi sempre controllare se la vostra applicazione ha elevato privs con:

Application.Current.HasElevatedPermissions 

Il mio problema è che, mentre funziona senza problemi in Firefox 14, IE9 deve essere eseguito come amministratore in Windows 7. Attualmente sto cercando un modo per farlo funzionare senza eseguire IE come amministratore. Se qualcuno sa come farlo apprezzerei l'aiuto.

Edit:

Wow. In realtà il link di Aaron McIver post mi ha aiutato molto. Ho appena disattivato "Abilita modalità protetta" e ora funziona perfettamente senza i diritti di amministratore. : D

0

Vorrei connettermi con l'app silverlight al socket sulla porta 10001 sullo stesso indirizzo host in cui è ospitata l'app.

È possibile farlo senza modificare nulla dal lato client?

0

Sono anche affrontare lo stesso tipo di problema

quando usiamo certificato di prova che funziona solo per la macchina locale.

devi firmare la tua app con un altro certificato, e funzionerà.

collegamento di domanda Silverlight 5 In browser trusted application