Sicurezza e distribuzione di ClickOnceClickOnce security and deployment

ClickOnceClickOnceè una tecnologia di distribuzione che consente di creare applicazioni basate su Windows con aggiornamento automatico che possono essere installate ed eseguite con interazioni utente minime.is a deployment technology that enables you to create self-updating Windows-based applications that can be installed and run with minimal user interaction. Visual StudioVisual Studiofornisce supporto completo per la pubblicazione e l'aggiornamento di applicazioni distribuite con la tecnologia ClickOnce se i progetti sono stati C#sviluppati con Visual Basic e Visual.provides full support for publishing and updating applications deployed with ClickOnce technology if you have developed your projects with Visual Basic and Visual C#. Per informazioni sulla distribuzione di C++ applicazioni visive, vedere ClickOnce Deployment C++ for Visual Applications.For information about deploying Visual C++ applications, see ClickOnce Deployment for Visual C++ Applications.

ClickOnceClickOncela distribuzione si verifica in tre problemi principali:deployment overcomes three major issues in deployment:

  • Difficoltà di aggiornamento delle applicazioni.Difficulties in updating applications. Con Microsoft Windows Installer distribuzione, ogni volta che un'applicazione viene aggiornata, l'utente può installare un aggiornamento, un file msp e applicarlo al prodotto installato; con ClickOnceClickOnce la distribuzione, è possibile fornire aggiornamenti automaticamente.With Microsoft Windows Installer deployment, whenever an application is updated, the user can install an update, an msp file, and apply it to the installed product; with ClickOnceClickOnce deployment, you can provide updates automatically. Vengono scaricate solo le parti dell'applicazione che sono state modificate, quindi l'applicazione aggiornata completa viene reinstallata da una nuova cartella affiancata.Only those parts of the application that have changed are downloaded, and then the full, updated application is reinstalled from a new side-by-side folder.

  • Effetti sul computer dell'utente.Impact to the user's computer. Con Windows Installer distribuzione, le applicazioni spesso si basano su componenti condivisi, con la possibilità di conflitti di controllo delle versioni. con ClickOnceClickOnce la distribuzione, ogni applicazione è indipendente e non può interferire con altre applicazioni.With Windows Installer deployment, applications often rely on shared components, with the potential for versioning conflicts; with ClickOnceClickOnce deployment, each application is self-contained and cannot interfere with other applications.

  • Autorizzazioni di sicurezza.Security permissions. Windows Installer distribuzione richiede autorizzazioni amministrative e consente solo l'installazione limitata degli utenti. ClickOnceClickOnce la distribuzione consente agli utenti non amministratori di installare e concedere solo le autorizzazioni di sicurezza per l'accesso al codice necessarie per l'applicazione.Windows Installer deployment requires administrative permissions and allows only limited user installation; ClickOnceClickOnce deployment enables non-administrative users to install and grants only those Code Access Security permissions necessary for the application.

    In passato, questi problemi causavano talvolta la creazione di applicazioni Web anziché di applicazioni basate su Windows, sacrificando un'interfaccia utente avanzata per semplificare l'installazione.In the past, these issues sometimes caused developers to decide to create Web applications instead of Windows-based applications, sacrificing a rich user interface for ease of installation. Utilizzando le applicazioni distribuite ClickOnceClickOncemediante, è possibile sfruttare al meglio entrambe le tecnologie.By using applications deployed using ClickOnceClickOnce, you can have the best of both technologies.

Che cos'è un'applicazione ClickOnce?What is a ClickOnce application?

Un' ClickOnceClickOnce applicazione è qualsiasi Windows Presentation Foundation ( . XBAP), Windows Forms (exe), applicazione console (exe) o soluzione Office (conestensione dll) pubblicata usando ClickOnceClickOnce la tecnologia.A ClickOnceClickOnce application is any Windows Presentation Foundation (.xbap), Windows Forms (.exe), console application (.exe), or Office solution (.dll) published using ClickOnceClickOnce technology. È possibile pubblicare un' ClickOnceClickOnce applicazione in tre modi diversi: da una pagina Web, da una condivisione file di rete o da un supporto come un CD-ROM.You can publish a ClickOnceClickOnce application in three different ways: from a Web page, from a network file share, or from media such as a CD-ROM. Un' ClickOnceClickOnce applicazione può essere installata nel computer di un utente finale ed eseguita localmente anche quando il computer è offline oppure può essere eseguito in modalità solo online senza installare in modo permanente alcun elemento nel computer dell'utente finale.A ClickOnceClickOnce application can be installed on an end user's computer and run locally even when the computer is offline, or it can be run in an online-only mode without permanently installing anything on the end user's computer. Per ulteriori informazioni, vedere scelta di una strategia di distribuzione ClickOnce.For more information, see Choose a ClickOnce deployment strategy.

ClickOnceClickOncele applicazioni possono essere con aggiornamento automatico; possono verificare la disponibilità di versioni più recenti e sostituire automaticamente eventuali file aggiornati.applications can be self-updating; they can check for newer versions as they become available and automatically replace any updated files. Lo sviluppatore può specificare il comportamento di aggiornamento; un amministratore di rete può controllare le strategie di aggiornamento, ad esempio, rendendo obbligatorio un aggiornamento.The developer can specify the update behavior; a network administrator can also control update strategies, for example, marking an update as mandatory. È anche possibile eseguire il rollback degli aggiornamenti a una versione precedente dall'utente finale o da un amministratore.Updates can also be rolled back to an earlier version by the end user or by an administrator. Per ulteriori informazioni, vedere scelta di una strategia di aggiornamento ClickOnce.For more information, see Choose a ClickOnce update strategy.

Poiché ClickOnceClickOnce le applicazioni sono isolate, l'installazione ClickOnceClickOnce o l'esecuzione di un'applicazione non può interrompere le applicazioni esistenti.Because ClickOnceClickOnce applications are isolated, installing or running a ClickOnceClickOnce application cannot break existing applications. ClickOnceClickOncele applicazioni sono autosufficienti; ogni ClickOnceClickOnce applicazione viene installata ed eseguita da una cache protetta per singolo utente e per ogni applicazione.applications are self-contained; each ClickOnceClickOnce application is installed to and run from a secure per-user, per-application cache. ClickOnceClickOncele applicazioni vengono eseguite nelle aree di sicurezza Internet o Intranet.applications run in the Internet or Intranet security zones. Se necessario, l'applicazione può richiedere autorizzazioni di protezione elevate.If necessary, the application can request elevated security permissions. Per altre informazioni, vedere proteggere le applicazioni ClickOnce.For more information, see Secure ClickOnce applications.

Funzionamento della sicurezza ClickOnceHow ClickOnce security works

La sicurezza ClickOnceClickOnce di base è basata sui certificati, i criteri di sicurezza dall'accesso di codice e la richiesta di attendibilità ClickOnce.The core ClickOnceClickOnce security is based on certificates, code access security policies, and the ClickOnce trust prompt.

CertificatiCertificates

I certificati Authenticode vengono usati per verificare l'autenticità dell'editore dell'applicazione.Authenticode certificates are used to verify the authenticity of the application's publisher. Utilizzando Authenticode per la distribuzione di applicazioni, ClickOnce consente di evitare che un programma dannoso si tratti di un programma legittimo proveniente da un'origine attendibile stabilita.By using Authenticode for application deployment, ClickOnce helps prevent a harmful program from portraying itself as a legitimate program coming from an established, trustworthy source. Facoltativamente, i certificati possono essere usati anche per firmare i manifesti dell'applicazione e della distribuzione per dimostrare che i file non sono stati manomessi.Optionally, certificates can also be used to sign the application and deployment manifests to prove that the files have not been tampered with. Per ulteriori informazioni, vedere ClickOnce e Authenticode.For more information, see ClickOnce and Authenticode. I certificati possono essere usati anche per configurare i computer client in modo che dispongano di un elenco di autori attendibili.Certificates can also be used to configure client computers to have a list of trusted publishers. Se un'applicazione deriva da un autore attendibile, può essere installata senza alcuna interazione dell'utente.If an application comes from a trusted publisher, it can be installed without any user interaction. Per altre informazioni, vedere Cenni preliminari sulla distribuzione di applicazioni attendibili.For more information, see Trusted application deployment overview.

Sicurezza dall'accesso di codiceCode access security

La sicurezza dall'accesso di codice consente di limitare l'accesso del codice alle risorse protette.Code access security helps limit the access that code has to protected resources. Nella maggior parte dei casi, è possibile scegliere le aree Internet o Intranet locale per limitare le autorizzazioni.In most cases, you can choose the Internet or Local Intranet zones to limit the permissions. Usare la pagina sicurezza in ProjectDesigner per richiedere l'area appropriata per l'applicazione.Use the Security page in the ProjectDesigner to request the zone appropriate for the application. È anche possibile eseguire il debug di applicazioni con autorizzazioni limitate per emulare l'esperienza dell'utente finale.You can also debug applications with restricted permissions to emulate the end-user experience. Per altre informazioni, vedere Sicurezza dall'accesso di codice per applicazioni ClickOnce.For more information, see Code access security for ClickOnce applications.

Richiesta di attendibilità ClickOnceClickOnce trust prompt

Se l'applicazione richiede più autorizzazioni rispetto a quelle consentite dalla zona, è possibile che all'utente finale venga richiesto di prendere una decisione di attendibilità.If the application requests more permissions than the zone allows, the end user can be prompted to make a trust decision. L'utente finale può decidere se le applicazioni ClickOnce come Windows Forms applicazioni, Windows Presentation Foundation applicazioni, applicazioni console, applicazioni browser XAML e soluzioni Office sono attendibili per l'esecuzione.The end user can decide if ClickOnce applications such as Windows Forms applications, Windows Presentation Foundation applications, console applications, XAML browser applications, and Office solutions are trusted to run. Per altre informazioni, vedere Procedura: Configurare il comportamento di richiesta di attendibilità di ClickOnce.For more information, see How to: Configure the ClickOnce trust prompt behavior.

Come funziona la distribuzione ClickOnceHow ClickOnce deployment works

L'architettura ClickOnceClickOnce di distribuzione principale si basa su due file manifesto XML: un manifesto dell'applicazione e un manifesto di distribuzione.The core ClickOnceClickOnce deployment architecture is based on two XML manifest files: an application manifest and a deployment manifest. I file vengono utilizzati per descrivere la posizione di installazione delle applicazioni ClickOnce, il modo in cui vengono aggiornate e il momento in cui vengono aggiornate.The files are used to describe where the ClickOnce applications are installed from, how they are updated, and when they are updated.

Pubblicare applicazioni ClickOncePublish ClickOnce applications

Il manifesto dell'applicazione descrive l'applicazione stessa.The application manifest describes the application itself. Sono inclusi gli assembly, le dipendenze e i file che costituiscono l'applicazione, le autorizzazioni necessarie e il percorso in cui saranno disponibili gli aggiornamenti.This includes the assemblies, the dependencies and files that make up the application, the required permissions, and the location where updates will be available. Lo sviluppatore di applicazioni crea il manifesto dell'applicazione usando la pubblicazione guidata in Visual Studio o il Strumento per la generazione e la modifica di manifesti (Mage. exe) in Windows Software Development Kit (SDK)Windows Software Development Kit (SDK).The application developer authors the application manifest by using the Publish Wizard in Visual Studio or the Manifest Generation and Editing Tool (Mage.exe) in the Windows Software Development Kit (SDK)Windows Software Development Kit (SDK). Per altre informazioni, vedere Procedura: Pubblicare un'applicazione ClickOnce mediante la Pubblicazione guidata.For more information, see How to: Publish a ClickOnce application using the Publish Wizard.

Il manifesto di distribuzione descrive il modo in cui viene distribuita l'applicazione.The deployment manifest describes how the application is deployed. Inclusi il percorso del manifesto dell'applicazione e la versione dell'applicazione che i client devono eseguire.This includes the location of the application manifest, and the version of the application that clients should run.

Distribuire applicazioni ClickOnceDeploy ClickOnce applications

Dopo la creazione, il manifesto di distribuzione viene copiato nella posizione della distribuzione,After it is created, the deployment manifest is copied to the deployment location. che può essere un server Web, un file condiviso in rete o un supporto come un CD.This can be a Web server, network file share, or media such as a CD. Il manifesto dell'applicazione e tutti i file dell'applicazione vengono copiati anche in un percorso di distribuzione specificato nel manifesto della distribuzione.The application manifest and all the application files are also copied to a deployment location that is specified in the deployment manifest. Tale posizione può essere la stessa posizione della distribuzione o un'altra posizione.This can be the same as the deployment location, or it can be a different location. Quando si usa la pubblicazione guidata in Visual Studio, le operazioni di copia vengono eseguite automaticamente.When using the Publish Wizard in Visual Studio, the copy operations are performed automatically.

Installare applicazioni ClickOnceInstall ClickOnce applications

Dopo la distribuzione nella posizione specificata, gli utenti finali possono scaricare e installare l'applicazione con un clic su un'icona che rappresenta il file manifesto di distribuzione in una pagina Web o in una cartella.After it is deployed to the deployment location, end users can download and install the application by clicking an icon representing the deployment manifest file on a Web page or in a folder. Nella maggior parte dei casi, l'utente finale viene visualizzata con una semplice finestra di dialogo in cui viene chiesto all'utente di confermare l'installazione, dopo la quale l'installazione continua e l'applicazione viene avviata senza ulteriori interventi.In most cases, the end user is presented with a simple dialog box asking the user to confirm installation, after which installation proceeds and the application is started without additional intervention. Nei casi in cui l'applicazione richiede autorizzazioni elevate o se l'applicazione non è firmata da un certificato attendibile, nella finestra di dialogo viene anche chiesto all'utente di concedere l'autorizzazione prima che l'installazione possa continuare.In cases where the application requires elevated permissions or if the application is not signed by a trusted certificate, the dialog box also asks the user to grant permission before the installation can continue. Sebbene le installazioni ClickOnce siano per utente, l'elevazione delle autorizzazioni potrebbe essere necessaria se sono presenti prerequisiti che richiedono privilegi di amministratore.Though ClickOnce installs are per-user, permission elevation may be required if there are prerequisites that require administrator privileges. Per ulteriori informazioni sulle autorizzazioni elevate, vedere protezione di applicazioni ClickOnce.For more information about elevated permissions, see Securing ClickOnce applications.

I certificati possono essere considerati attendibili a livello di computer o di organizzazione, in modo che le applicazioni ClickOnce firmate con un certificato attendibile possano essere installate automaticamente.Certificates can be trusted at the machine or enterprise level, so that ClickOnce applications signed with a trusted certificate can install silently. Per ulteriori informazioni sui certificati attendibili, vedere Cenni preliminari sulla distribuzione di applicazioni attendibili.For more information about trusted certificates, see Trusted application deployment overview.

È possibile aggiungere l'applicazione al menu Start dell'utente e al gruppo Installazione applicazioni nel Pannello di controllo.The application can be added to the user's Start menu and to the Add or Remove Programs group in the Control Panel. A differenza di altre tecnologie di distribuzione, non viene aggiunto nulla alla cartella programmi o al registro di sistema e non sono necessari diritti amministrativi per l'installazioneUnlike other deployment technologies, nothing is added to the Program Files folder or the registry, and no administrative rights are required for installation

Note

È anche possibile impedire che l'applicazione venga aggiunta al menu Start e al gruppo installazione applicazioni, in modo da comportarsi come un'applicazione Web.It is also possible to prevent the application from being added to the Start menu and Add or Remove Programs group, in effect making it behave like a Web application. Per ulteriori informazioni, vedere scelta di una strategia di distribuzione ClickOnce.For more information, see Choose a ClickOnce deployment strategy.

Aggiornare le applicazioni ClickOnceUpdate ClickOnce applications

Quando gli sviluppatori di applicazioni creano una versione aggiornata dell'applicazione, generano un nuovo manifesto dell'applicazione e copiano i file in un percorso di distribuzione, in genere una cartella di pari livello nella cartella di distribuzione dell'applicazione originale.When the application developers create an updated version of the application, they generate a new application manifest and copy files to a deployment location—usually a sibling folder to the original application deployment folder. L'amministratore aggiorna il manifesto di distribuzione inserendo un riferimento alla posizione della nuova versione dell'applicazione.The administrator updates the deployment manifest to point to the location of the new version of the application.

Note

Per eseguire questa procedura, è possibile usare la pubblicazione guidata in Visual Studio.The Publish Wizard in Visual Studio can be used to perform these steps.

Oltre alla posizione di distribuzione, il manifesto di distribuzione contiene anche una posizione di aggiornamento (una pagina Web o un file condiviso in rete) in cui l'applicazione verifica la disponibilità di versioni aggiornate.In addition to the deployment location, the deployment manifest also contains an update location (a Web page or network file share) where the application checks for updated versions. ClickOnceClickOnceLe proprietà di pubblicazione vengono utilizzate per specificare quando e con quale frequenza l'applicazione deve verificare la disponibilità di aggiornamenti.Publish properties are used to specify when and how often the application should check for updates. Il comportamento di aggiornamento può essere specificato nel manifesto di distribuzione oppure può essere presentato come scelta utente nell'interfaccia utente dell'applicazione per mezzo delle ClickOnceClickOnce API.Update behavior can be specified in the deployment manifest, or it can be presented as user choices in the application's user interface by means of the ClickOnceClickOnce APIs. Inoltre le proprietà di pubblicazione possono essere impiegate per rendere obbligatori o per annullare gli aggiornamenti a vantaggio di una versione precedente.In addition, Publish properties can be employed to make updates mandatory or to roll back to an earlier version. Per ulteriori informazioni, vedere scelta di una strategia di aggiornamento ClickOnce.For more information, see Choosing a ClickOnce update strategy.

Programmi di installazione di terze partiThird party installers

È possibile personalizzare il programma di installazione ClickOnce per installare componenti di terze parti insieme all'applicazione.You can customize your ClickOnce installer to install third-party components along with your application. È necessario disporre del pacchetto ridistribuibile (file con estensione exe o MSI) e descrivere il pacchetto con un manifesto del prodotto indipendente dalla lingua e un manifesto del pacchetto specifico della lingua.You must have the redistributable package (.exe or .msi file) and describe the package with a language-neutral product manifest and a language-specific package manifest. Per ulteriori informazioni, vedere creazione di pacchetti del programma di avvio automatico.For more information, see Creating bootstrapper packages.

Strumenti ClickOnceClickOnce tools

La tabella seguente illustra gli strumenti che è possibile usare per generare, modificare, firmare e firmare nuovamente i manifesti dell'applicazione e della distribuzione.The following table shows the tools that you can use to generate, edit, sign, and re-sign the application and deployment manifests.

StrumentoTool DescrizioneDescription
Pagina Sicurezza, Creazione progettiSecurity Page, Project Designer Firma i manifesti dell'applicazione e della distribuzione.Signs the application and deployment manifests.
Pagina Pubblica, Creazione progettiPublish Page, Project Designer Genera e modifica i manifesti dell'applicazione e della distribuzione per applicazioni Visual Basic C# e visive.Generates and edits the application and deployment manifests for Visual Basic and Visual C# applications.
Mage.exe (Strumento per la generazione e la modifica di manifesti)Mage.exe (Manifest Generation and Editing Tool) Genera i manifesti dell'applicazione e della distribuzione per le C#applicazioni Visual Basic, C++ visive e visive.Generates the application and deployment manifests for Visual Basic, Visual C#, and Visual C++ applications.

Firma e firma nuovamente i manifesti dell'applicazione e della distribuzione.Signs and re-signs the application and deployment manifests.

Può essere eseguito da script batch e dal prompt dei comandi.Can be run from batch scripts and the command prompt.
MageUI.exe (Strumento per la generazione e la modifica di manifesti, client grafico)MageUI.exe (Manifest Generation and Editing Tool, Graphical Client) Genera e modifica i manifesti dell'applicazione e della distribuzione.Generates and edits the application and deployment manifests.

Firma e firma nuovamente i manifesti dell'applicazione e della distribuzione.Signs and re-signs the application and deployment manifests.
Attività GenerateApplicationManifestGenerateApplicationManifest task Genera il manifesto dell'applicazione.Generates the application manifest.

Può essere eseguito da MSBuild.Can be run from MSBuild. Per altre informazioni, vedere Riferimenti a MSBuild.For more information, see MSBuild reference.
Attività GenerateDeploymentManifestGenerateDeploymentManifest task Genera il manifesto della distribuzione.Generates the deployment manifest.

Può essere eseguito da MSBuild.Can be run from MSBuild. Per altre informazioni, vedere Riferimenti a MSBuild.For more information, see MSBuild reference.
Attività SignFileSignFile task Firma i manifesti dell'applicazione e della distribuzione.Signs the application and deployment manifests.

Può essere eseguito da MSBuild.Can be run from MSBuild. Per altre informazioni, vedere Riferimenti a MSBuild.For more information, see MSBuild reference.
Microsoft. Build. Tasks. Deployment. ManifestUtilitiesMicrosoft.Build.Tasks.Deployment.ManifestUtilities Sviluppare un'applicazione personalizzata per generare i manifesti dell'applicazione e della distribuzione.Develop your own application to generate the application and deployment manifests.

Nella tabella seguente viene illustrata la versione .NET Framework necessaria per supportare le applicazioni ClickOnce in questi browser.The following table shows the .NET Framework version required to support ClickOnce applications in these browsers.

BrowserBrowser Versione di .NET Framework.NET Framework version
Internet ExplorerInternet Explorer 2.0, 3.0, 3.5, 3.5 SP1, 42.0, 3.0, 3.5, 3.5 SP1, 4
FirefoxFirefox 2.0 SP1, 3.5 SP1, 42.0 SP1, 3.5 SP1, 4

Vedere ancheSee also