Condividi tramite


Sicurezza dall'accesso di codice per applicazioni ClickOnce

Aggiornamento: novembre 2007

Le applicazioni ClickOnce sono basate su .NET Framework e sono soggette ai vincoli di sicurezza dall'accesso di codice. Per poter scrivere correttamente le applicazioni ClickOnce, è quindi importante comprendere le implicazioni di questo tipo di sicurezza.

La sicurezza dall'accesso di codice è un meccanismo di .NET Framework che consente di limitare l'accesso del codice alle risorse e alle operazioni protette. Si consiglia di configurare sempre le autorizzazioni di sicurezza dall'accesso di codice relative all'applicazione ClickOnce in modo da includere soltanto le autorizzazioni effettivamente richieste dall'applicazione. In Visual Studio vengono forniti gli strumenti necessari per determinare e configurare il set di autorizzazioni per l'applicazione.

Autorizzazioni di sicurezza dall'accesso di codice predefinite per le applicazioni ClickOnce

Per impostazione predefinita, quando un'applicazione ClickOnce viene eseguita o installata in un computer client, all'applicazione vengono assegnate autorizzazioni di attendibilità totale. Sebbene tali autorizzazioni possano essere in alcuni casi effettivamente necessarie, in genere è consigliabile non concederle per i seguenti due motivi:

  • Un'applicazione con autorizzazioni di attendibilità totale ha accesso illimitato alle risorse, inclusi il file system e il Registro di sistema, con il rischio che l'applicazione e il sistema dell'utente finale siano sfruttati da codice dannoso.

  • Quando un'applicazione richiede autorizzazioni di attendibilità totale, all'utente finale verrà richiesto di concedere autorizzazioni all'applicazione. Ciò significa l'applicazione non fornisce effettivamente un'esperienza ClickOnce e il prompt potrebbe confondere un utente non esperto.

    Nota:

    Quando si installa un'applicazione da supporti rimovibili, ad esempio un CD-ROM, non viene visualizzato alcun prompt per l'utente. L'amministratore della rete può inoltre configurare i criteri di rete in modo che, in caso di installazione di un'applicazione da una fonte attendibile, il prompt non venga visualizzato. Per ulteriori informazioni, vedere Cenni preliminari sulla distribuzione di applicazioni attendibili.

Per questi motivi, si consiglia di modificare sempre le autorizzazioni di sicurezza dall'accesso di codice relative all'applicazione in modo da includere soltanto le autorizzazioni effettivamente richieste dall'applicazione.

Configurazione delle autorizzazioni di sicurezza

In linea generale, è sempre opportuno configurare l'applicazione ClickOnce in modo che richieda soltanto le autorizzazioni di sicurezza dall'accesso di codice effettivamente necessarie. Per configurare le autorizzazioni di sicurezza, è possibile utilizzare la scheda Sicurezza di Progettazione progetti.

Nella scheda Sicurezza di Progettazione progetti è disponibile la casella di controllo Attiva le impostazioni di sicurezza ClickOnce. Quando si seleziona questa casella di controllo, le richieste delle autorizzazioni di sicurezza vengono aggiunte al manifesto di distribuzione dell'applicazione. Durante l'installazione, all'utente viene richiesto di concedere le autorizzazioni, se le autorizzazioni richieste superano quelle predefinite per la zona da cui viene distribuita l'applicazione. Per ulteriori informazioni, vedere Procedura: attivare le impostazioni di sicurezza ClickOnce.

Alle applicazioni distribuite da percorsi differenti vengono concessi automaticamente livelli di autorizzazioni diversi. Quando un'applicazione viene distribuita da Internet, ad esempio, riceve un set di autorizzazioni molto limitato. Quando l'applicazione viene installata da una Intranet locale riceve più autorizzazioni, mentre in caso di installazione da CD-ROM riceve autorizzazioni di attendibilità totale.

Per iniziare la configurazione delle autorizzazioni, nella scheda Sicurezza è possibile selezionare una zona di sicurezza dall'elenco a discesa Zona. Se l'applicazione potrà essere distribuita da più zone, si consiglia di selezionare quella che prevede il numero minore di autorizzazioni. Se invece si desidera iniziare senza autorizzazioni preimpostate e aggiungere, una alla volta, le autorizzazioni richieste dall'applicazione, selezionare l'area Personalizzata.

Quando si seleziona una zona, l'elenco Autorizzazioni viene aggiornato in modo da visualizzare le autorizzazioni predefinite della zona. Le autorizzazioni incluse sono contrassegnate da un segno di spunta verde. Per ulteriori informazioni, vedere Procedura: impostare un'area di protezione per un'applicazione ClickOnce.

Per limitare ulteriormente le autorizzazioni, è possibile selezionare un set di autorizzazioni e modificarne le proprietà. Si supponga, ad esempio, che l'applicazione richieda la visualizzazione della finestra di dialogo Apri file. Il set di autorizzazioni FileDialogPermission concede il diritto di visualizzazione delle finestre di dialogo. Per impostazione predefinita, questo set di autorizzazioni abilita le finestre di dialogo Apri file e Salva file. Per modificare questa impostazione, fare clic sul set FileDialogPermission, scegliere Proprietà per aprire una finestra di dialogo Impostazioni autorizzazione e impostare l'autorizzazione su Solo finestra di dialogo Apri. Per ulteriori informazioni, vedere Procedura: impostare le autorizzazioni personalizzate per un'applicazione ClickOnce.

Nota:

Le proprietà che è possibile impostare dipendono dal set di autorizzazioni. Non tutti i set di autorizzazioni dispongono di proprietà configurabili.

È anche possibile escludere set di autorizzazioni non necessari o attivare autorizzazioni che non fanno parte delle autorizzazioni predefinite di una zona. A tale scopo, scegliere un valore dall'elenco Impostazione per il set di autorizzazioni. Le autorizzazioni modificate sono visualizzate in grassetto. Se un'autorizzazione è stata abilitata e non fa parte dell'impostazione predefinita della zona, un'icona informazioni viene aggiunta accanto al segno di spunta Incluso.

Nota:

L'abilitazione di autorizzazioni che non appartengono a quelle predefinite della zona causa la visualizzazione di un prompt all'utente, come illustrato in precedenza. Quando si abilitano autorizzazioni aggiuntive, è consigliabile modificare sempre il set di autorizzazioni in modo da includere solo le autorizzazioni effettivamente necessarie.

Identificazione delle autorizzazioni necessarie per un'applicazione

Per configurare correttamente le autorizzazioni di sicurezza, è importante conoscere con esattezza le autorizzazioni richieste dall'applicazione. A tale scopo, è possibile utilizzare lo strumento di elaborazione delle autorizzazioni, disponibile dalla pagina Sicurezza, per analizzare il codice e determinare le autorizzazioni necessarie per l'applicazione.

Nota:

Per lo strumento Analisi autorizzazioni esistono alcune limitazioni. Lo strumento, infatti, esegue un'analisi statica del codice e non è quindi in grado di determinare le autorizzazioni necessarie per il codice ad associazione tardiva o per gli assembly caricati dinamicamente. Inoltre, se l'applicazione è stata progettata in modo da modificare dinamicamente le proprie richieste di autorizzazione quando viene eseguita in un ambiente che dispone di un numero minore di autorizzazioni, lo strumento indicherà il numero massimo di autorizzazioni necessarie.

Dopo l'analisi dell'applicazione da parte dello strumento, tutti i set di autorizzazioni obbligatori sono impostati su Attivato e visualizzati in grassetto. Se un'autorizzazione abilitata non fa parte di quelle predefinite della zona, sarà contrassegnata anche con un'icona di avviso. Per evitare la visualizzazione del prompt all'utente, riesaminare queste impostazioni per verificare se è possibile modificare il codice in modo che l'autorizzazione non sia più necessaria.

Per ulteriori informazioni, vedere Procedura: determinare le autorizzazioni per un'applicazione ClickOnce.

Debug di un'applicazione con autorizzazioni limitate

In qualità di sviluppatore, è probabile che si utilizzi il computer di sviluppo con autorizzazioni di attendibilità completa. In tal caso, pertanto, durante il debug dell'applicazione non vengono visualizzate le stesse eccezioni di sicurezza visibili agli utenti quando accedono con autorizzazioni limitate.

Per intercettare queste eccezioni, è necessario eseguire il debug dell'applicazione con le stesse autorizzazioni dell'utente finale. È possibile attivare il debug con autorizzazioni limitate nella scheda Sicurezza di Progettazione progetti.

Quando si esegue il debug di un'applicazione con autorizzazioni limitate, le eccezioni vengono generate per qualsiasi richiesta di sicurezza del codice non abilitata nella scheda Sicurezza. Verrà inoltre visualizzato il supporto eccezioni, in cui vengono forniti suggerimenti su come modificare il codice al fine di impedire l'eccezione.

Inoltre, durante la scrittura del codice, gli eventuali membri non inclusi nelle autorizzazioni di sicurezza configurate verranno visualizzati in grigio nell'editor di codice, sfruttando la funzionalità IntelliSense.

Per ulteriori informazioni, vedere Procedura: eseguire il debug di un'applicazione ClickOnce con autorizzazioni limitate.

Autorizzazioni di sicurezza per le applicazioni ospitate da browser

In Visual Studio sono disponibili i tipi di progetto seguenti per le applicazioni di Windows Presentation Foundation (WPF):

  • Applicazione Windows WPF

  • Applicazione browser WPF

  • Libreria di controlli personalizzati WPF

  • Libreria di servizi WPF

Tra questi tipi di progetto, solo le applicazioni browser WPF sono ospitate da browser e richiedono impostazioni speciali di distribuzione e di sicurezza. Le impostazioni di sicurezza predefinite per queste applicazioni sono:

  • Attiva le impostazioni di sicurezza ClickOnce

  • È un'applicazione parzialmente attendibile

  • Area Internet (con il set di autorizzazioni predefinito per le applicazioni browser WPF selezionato)

Nella finestra di dialogo Impostazioni di sicurezza avanzate, la casella di controllo Esegui debug dell'applicazione con il set di autorizzazioni selezionato è selezionata e disabilitata. Questa condizione è dovuta al fatto che non è possibile disattivare il debug della zona per le applicazioni ospitate da browser.

Quando si distribuiscono le applicazioni browser WPF con ClickOnce, è necessario un set di autorizzazioni specifico, archiviato nel file manifesto appname.exe. Si tratta delle autorizzazioni predefinite per il set di autorizzazioni dell'area Internet di sicurezza dall'accesso di codice Internet, oltre a due altre autorizzazioni:

WebBrowserPermission

MediaPermission

Se si impostano autorizzazioni non predefinite, in Visual Studio verrà visualizzato un avviso in cui si dichiara che l'applicazione è configurata per richiedere un'autorizzazione non predefinita. L'installazione avrà esito negativo a meno che il criterio di sicurezza non sia già stato inviato al computer di destinazione.

Vedere anche

Attività

Procedura: attivare le impostazioni di sicurezza ClickOnce

Procedura: impostare un'area di protezione per un'applicazione ClickOnce

Procedura: impostare le autorizzazioni personalizzate per un'applicazione ClickOnce

Procedura: determinare le autorizzazioni per un'applicazione ClickOnce

Procedura: eseguire il debug di un'applicazione ClickOnce con autorizzazioni limitate

Concetti

Distribuzione e sicurezza ClickOnce

Cenni preliminari sulla distribuzione di applicazioni attendibili

Riferimenti

Pagina Protezione, Progettazione progetti