Sécurité et déploiement ClickOnceClickOnce Security and Deployment

ClickOnceClickOnce est une technologie de déploiement qui vous permet de créer des applications Windows mise à jour automatique qui peuvent être installées et exécutées avec une intervention minime de l’utilisateur. 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 Studio Fournit la prise en charge complète pour la publication et la mise à jour des applications déployées avec la technologie ClickOnce si vous avez développé vos projets avec Visual Basic et Visual c#. provides full support for publishing and updating applications deployed with ClickOnce technology if you have developed your projects with Visual Basic and Visual C#. Pour plus d’informations sur le déploiement d’applications Visual C++, consultez déploiement ClickOnce pour les Applications Visual C++.For information about deploying Visual C++ applications, see ClickOnce Deployment for Visual C++ Applications.

ClickOnceClickOnce déploiement propose trois principaux problèmes de déploiement : deployment overcomes three major issues in deployment:

  • Problèmes lors de la mise à jour des applications.Difficulties in updating applications. Avec le déploiement de Microsoft Windows Installer, chaque fois qu’une application est mise à jour, l’utilisateur peut installer une mise à jour, un fichier msp et l’appliquer au produit installé ; avec ClickOnceClickOnce déploiement, vous pouvez fournir des mises à jour automatiquement.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. Uniquement les parties de l’application qui ont changé sont téléchargées, puis l’application complète, mise à jour est réinstallée à partir d’un nouveau dossier côte à côte.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.

  • Impact sur l’ordinateur de l’utilisateur.Impact to the user's computer. Avec le déploiement de Windows Installer, applications dépendent souvent des composants partagés, avec le risque de conflits de versioning ; avec ClickOnceClickOnce déploiement, chaque application est autonome et ne peut pas interférer avec d’autres applications.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.

  • Autorisations de sécurité.Security permissions. Déploiement de Windows Installer requiert des autorisations administratives et autorise uniquement l’installation utilisateur limité ; ClickOnceClickOnce déploiement permet à des utilisateurs non administratifs installer et accorde uniquement les autorisations de sécurité d’accès du Code nécessaires à l’application.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.

    Dans le passé, ces problèmes parfois aux développeurs de décider de créer des applications Web au lieu des applications Windows, pour autant sacrifier une interface utilisateur élaborée pour faciliter l’installation.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. À l’aide des applications déployées à l’aide de ClickOnceClickOnce, vous pouvez bénéficier du meilleur des deux technologies.By using applications deployed using ClickOnceClickOnce, you can have the best of both technologies.

Qu’est une Application ClickOnce ?What Is a ClickOnce Application?

A ClickOnceClickOnce application est Windows Presentation Foundation (.xbap), Windows Forms (.exe), l’application console (.exe) ni publiées à l’aide de la solution Office (.dll) ClickOnceClickOnce technologie.A ClickOnceClickOnce application is any Windows Presentation Foundation (.xbap), Windows Forms (.exe), console application (.exe), or Office solution (.dll) published using ClickOnceClickOnce technology. Vous pouvez publier un ClickOnceClickOnce application de trois façons différentes : à partir d’une page Web, à partir d’un partage de fichiers réseau ou à partir d’un support tel qu’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. A ClickOnceClickOnce application peut être installée sur l’ordinateur de l’utilisateur final et exécutée localement même si l’ordinateur est hors connexion, ou il peut être exécuté en mode en ligne uniquement sans installer quoi que ce soit de façon permanente sur l’ordinateur de l’utilisateur final.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. Pour plus d’informations, consultez Choix d’une stratégie de déploiement ClickOnce.For more information, see Choosing a ClickOnce Deployment Strategy.

ClickOnceClickOnce applications peuvent être mise à jour automatique ; elles peuvent vérifier les versions plus récentes dès qu’ils sont disponibles et remplacement automatiquement les fichiers mis à jour. applications can be self-updating; they can check for newer versions as they become available and automatically replace any updated files. Le développeur peut spécifier le comportement de mise à jour ; un administrateur réseau peut également contrôler la mise à jour des stratégies, par exemple, le marquage d’une mise à jour comme étant obligatoire.The developer can specify the update behavior; a network administrator can also control update strategies, for example, marking an update as mandatory. Mises à jour peuvent également être restaurées vers une version antérieure restaurée par l’utilisateur final ou par un administrateur.Updates can also be rolled back to an earlier version by the end user or by an administrator. Pour plus d’informations, consultez choix d’une stratégie de mise à jour ClickOnce.For more information, see Choosing a ClickOnce Update Strategy.

Étant donné que ClickOnceClickOnce les applications sont isolées, l’installation ou en cours d’exécution un ClickOnceClickOnce application ne peut pas arrêter les applications existantes.Because ClickOnceClickOnce applications are isolated, installing or running a ClickOnceClickOnce application cannot break existing applications. ClickOnceClickOnce les applications sont autonomes ; chaque ClickOnceClickOnce application est installée et exécutée à partir d’un sécurité cache par utilisateur, par application. applications are self-contained; each ClickOnceClickOnce application is installed to and run from a secure per-user, per-application cache. ClickOnceClickOnce applications s’exécutent dans les zones de sécurité Internet ou Intranet. applications run in the Internet or Intranet security zones. Si nécessaire, l’application peut demander des autorisations de sécurité avec élévation de privilèges.If necessary, the application can request elevated security permissions. Pour plus d’informations, consultez Sécurisation des applications ClickOnce.For more information, see Securing ClickOnce Applications.

Fonctionne de la sécurité ClickOnceHow ClickOnce Security Works

Le cœur ClickOnceClickOnce est basée sur les certificats, les stratégies de sécurité d’accès au code et l’invite d’approbation ClickOnce.The core ClickOnceClickOnce security is based on certificates, code access security policies, and the ClickOnce trust prompt.

CertificatsCertificates

Certificats Authenticode sont utilisés pour vérifier l’authenticité du serveur de publication de l’application.Authenticode certificates are used to verify the authenticity of the application's publisher. En utilisant Authenticode pour le déploiement de l’application, ClickOnce empêche un programme préjudiciable se présente comme un programme légitime provenant d’une source digne de confiance établie.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. Si vous le souhaitez, certificats peuvent également être utilisés pour signer l’application et les manifestes de déploiement pour prouver que les fichiers n’ont pas été falsifiés.Optionally, certificates can also be used to sign the application and deployment manifests to prove that the files have not been tampered with. Pour plus d’informations, consultez ClickOnce et Authenticode.For more information, see ClickOnce and Authenticode. Certificats peuvent également être utilisés pour configurer des ordinateurs clients pour avoir une liste des éditeurs approuvés.Certificates can also be used to configure client computers to have a list of trusted publishers. Si une application provient d’un éditeur approuvé, elle peut être installée sans intervention de l’utilisateur.If an application comes from a trusted publisher, it can be installed without any user interaction. Pour plus d'informations, consultez Trusted Application Deployment Overview.For more information, see Trusted Application Deployment Overview.

Sécurité d'accès du codeCode Access Security

Sécurité d’accès du code permet de limiter l’accès du code aux ressources protégées.Code access security helps limit the access that code has to protected resources. Dans la plupart des cas, vous pouvez choisir les zones Internet ou Intranet Local pour limiter les autorisations.In most cases, you can choose the Internet or Local Intranet zones to limit the permissions. Utilisez le sécurité page dans le ProjectDesigner pour demander la zone appropriée pour l’application.Use the Security page in the ProjectDesigner to request the zone appropriate for the application. Vous pouvez également déboguer des applications avec des autorisations restreintes pour émuler l’expérience utilisateur final.You can also debug applications with restricted permissions to emulate the end-user experience. Pour plus d’informations, consultez Sécurité d’accès du code pour les applications ClickOnce.For more information, see Code Access Security for ClickOnce Applications.

Invite d’approbation ClickOnceClickOnce Trust Prompt

Si l’application demande plus d’autorisations que la zone permet, l’utilisateur final peut être invité à prendre une décision d’approbation.If the application requests more permissions than the zone allows, the end user can be prompted to make a trust decision. L’utilisateur final peut décider si les applications ClickOnce telles que les applications Windows Forms, les applications Windows Presentation Foundation, les applications console, les applications de navigateur XAML et les solutions Office sont approuvées pour exécution.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. Pour plus d’informations, consultez Comment : configurer le comportement d’invite approbation ClickOnce.For more information, see How to: Configure the ClickOnce Trust Prompt Behavior.

Fonctionne du déploiement ClickOnceHow ClickOnce Deployment Works

Le cœur ClickOnceClickOnce architecture de déploiement repose sur deux fichiers manifeste XML : un manifeste d’application et un manifeste de déploiement.The core ClickOnceClickOnce deployment architecture is based on two XML manifest files: an application manifest and a deployment manifest. Les fichiers sont utilisés pour décrire où les applications ClickOnce sont installées à partir de, comment elles sont mises à jour, et lorsqu’ils sont mis à jour.The files are used to describe where the ClickOnce applications are installed from, how they are updated, and when they are updated.

Publication d'applications ClickOncePublishing ClickOnce Applications

Le manifeste d’application décrit l’application elle-même.The application manifest describes the application itself. Cela inclut les assemblys, les dépendances et les fichiers qui composent l’application, les autorisations requises et l’emplacement où les mises à jour seront disponibles.This includes the assemblies, the dependencies and files that make up the application, the required permissions, and the location where updates will be available. Le développeur d’applications crée le manifeste d’application à l’aide de l’Assistant Publication dans Visual Studio ou Manifest Generation and Editing Tool (Mage.exe) dans le Kit de développement logiciel WindowsWindows 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 Kit de développement logiciel WindowsWindows Software Development Kit (SDK). Pour plus d’informations, consultez Comment : publier une Application ClickOnce à l’aide de l’Assistant Publication.For more information, see How to: Publish a ClickOnce Application using the Publish Wizard.

Le manifeste de déploiement décrit comment l’application est déployée.The deployment manifest describes how the application is deployed. Cela inclut l’emplacement du manifeste d’application et la version de l’application que les clients doivent exécuter.This includes the location of the application manifest, and the version of the application that clients should run.

Déploiement d’Applications ClickOnceDeploying ClickOnce Applications

Après sa création, le manifeste de déploiement est copié dans l’emplacement de déploiement.After it is created, the deployment manifest is copied to the deployment location. Cela peut être un serveur Web, partage de fichiers réseau ou un support tel qu’un CD.This can be a Web server, network file share, or media such as a CD. Le manifeste d’application et tous les fichiers d’application sont également copiés vers un emplacement de déploiement qui est spécifié dans le manifeste de déploiement.The application manifest and all the application files are also copied to a deployment location that is specified in the deployment manifest. Cela peut être le même que l’emplacement de déploiement, ou il peut être un emplacement différent.This can be the same as the deployment location, or it can be a different location. Lorsque vous utilisez la Assistant Publication dans Visual Studio, les opérations de copie sont effectuées automatiquement.When using the Publish Wizard in Visual Studio, the copy operations are performed automatically.

L’installation d’Applications ClickOnceInstalling ClickOnce Applications

Après que qu’il est déployé à l’emplacement de déploiement, les utilisateurs finaux peuvent télécharger et installer l’application en cliquant sur une icône représentant le fichier manifeste de déploiement sur une page Web ou dans un dossier.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. Dans la plupart des cas, l’utilisateur final est présenté avec une boîte de dialogue invite l’utilisateur à confirmer l’installation, après quoi l’installation continue et l’application est lancée sans autre intervention.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. Dans les cas où l’application requiert des autorisations élevées ou si l’application n’est pas signée par un certificat approuvé, la boîte de dialogue demande également à l’utilisateur pour accorder l’autorisation avant de poursuivre l’installation.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. Bien que les installations ClickOnce soient effectuées par l’utilisateur, l’élévation d’autorisations peut être nécessaire si les conditions préalables qui nécessitent des privilèges d’administrateur.Though ClickOnce installs are per-user, permission elevation may be required if there are prerequisites that require administrator privileges. Pour plus d’informations sur les autorisations avec élévation de privilèges, consultez sécurisation des Applications ClickOnce.For more information about elevated permissions, see Securing ClickOnce Applications.

Les certificats peuvent être approuvés au niveau de l’ordinateur ou d’entreprise, afin que les applications ClickOnce signées avec un certificat approuvé puissent installer en mode silencieux.Certificates can be trusted at the machine or enterprise level, so that ClickOnce applications signed with a trusted certificate can install silently. Pour plus d’informations sur les certificats de confiance, consultez Trusted Application Deployment Overview.For more information about trusted certificates, see Trusted Application Deployment Overview.

L’application peut être ajoutée à l’utilisateur Démarrer menu et à la Ajout / Suppression de programmes groupe dans le le panneau de configuration.The application can be added to the user's Start menu and to the Add or Remove Programs group in the Control Panel. Contrairement à d’autres technologies de déploiement, rien n’est ajouté à la Program Files dossier ou le Registre et aucun droit d’administrateur est requis pour l’installationUnlike other deployment technologies, nothing is added to the Program Files folder or the registry, and no administrative rights are required for installation

Note

Il est également possible d’empêcher l’application d’être ajouté à la Démarrer menu et Ajout / Suppression de programmes groupe en vigueur se comportent comme une application 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. Pour plus d’informations, consultez Choix d’une stratégie de déploiement ClickOnce.For more information, see Choosing a ClickOnce Deployment Strategy.

Mise à jour des Applications ClickOnceUpdating ClickOnce Applications

Lorsque les développeurs d’applications créent une version mise à jour de l’application, ils génèrent un manifeste d’application et copier des fichiers vers un emplacement de déploiement, généralement un dossier frère dans le dossier de déploiement d’application d’origine.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’administrateur met à jour le manifeste de déploiement pour pointer vers l’emplacement de la nouvelle version de l’application.The administrator updates the deployment manifest to point to the location of the new version of the application.

Note

Le Assistant Publication dans Visual Studio peut être utilisé pour effectuer ces étapes.The Publish Wizard in Visual Studio can be used to perform these steps.

En plus de l’emplacement de déploiement, le manifeste de déploiement contient également un emplacement de mise à jour (une page Web ou réseau partage de fichiers) où l’application vérifie pour les versions mises à jour.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. ClickOnceClickOnce Publier propriétés sont utilisées pour spécifier quand et à quelle fréquence l’application doit vérifier les mises à jour. Publish properties are used to specify when and how often the application should check for updates. Comportement de mise à jour peut être spécifié dans le manifeste de déploiement, ou il peut être présenté en tant que choix de l’utilisateur dans l’interface utilisateur de l’application à l’aide de la 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. En outre, publier propriétés peuvent être employées pour mettre à jour obligatoire ou restaurer une version antérieure.In addition, Publish properties can be employed to make updates mandatory or to roll back to an earlier version. Pour plus d’informations, consultez choix d’une stratégie de mise à jour ClickOnce.For more information, see Choosing a ClickOnce Update Strategy.

Programmes d’installation tiersThird Party Installers

Vous pouvez personnaliser votre programme d’installation ClickOnce pour installer des composants tiers avec votre application.You can customize your ClickOnce installer to install third-party components along with your application. Vous devez disposer du package redistribuable (fichier .exe ou .msi) et décrire le package avec un manifeste de produit indépendant de la langue et un manifeste de package de langue spécifiques.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. Pour plus d’informations, consultez création de Packages de programme d’amorçage.For more information, see Creating Bootstrapper Packages.

Outils de ClickOnceClickOnce Tools

Le tableau suivant montre les outils que vous pouvez utiliser pour générer, modifier, signer et signer à nouveau les manifestes d’application et de déploiement.The following table shows the tools that you can use to generate, edit, sign, and re-sign the application and deployment manifests.

OutilTool DescriptionDescription
Page Sécurité, Concepteur de projetSecurity Page, Project Designer Signe les manifestes d’application et de déploiement.Signs the application and deployment manifests.
Page Publier, Concepteur de projetsPublish Page, Project Designer Génère et modifie les manifestes d’application et de déploiement pour les applications Visual Basic et Visual c#.Generates and edits the application and deployment manifests for Visual Basic and Visual C# applications.
Mage.exe (outil Manifest Generation and Editing)Mage.exe (Manifest Generation and Editing Tool) Génère les manifestes d’application et de déploiement pour les applications Visual Basic, Visual c# et Visual C++.Generates the application and deployment manifests for Visual Basic, Visual C#, and Visual C++ applications.

Signe et signe à nouveau les manifestes d’application et de déploiement.Signs and re-signs the application and deployment manifests.

Peut être exécuté à partir de scripts de commandes et de l’invite de commandes.Can be run from batch scripts and the command prompt.
MageUI.exe (outil Manifest Generation and Editing, client graphique)MageUI.exe (Manifest Generation and Editing Tool, Graphical Client) Génère et modifie les manifestes d’application et de déploiement.Generates and edits the application and deployment manifests.

Signe et signe à nouveau les manifestes d’application et de déploiement.Signs and re-signs the application and deployment manifests.
GenerateApplicationManifest, tâcheGenerateApplicationManifest Task Génère le manifeste d’application.Generates the application manifest.

Peut être exécuté à partir de MSBuild.Can be run from MSBuild. Pour plus d’informations, consultez MSBuild référence.For more information, see MSBuild Reference.
GenerateDeploymentManifest, tâcheGenerateDeploymentManifest Task Génère le manifeste de déploiement.Generates the deployment manifest.

Peut être exécuté à partir de MSBuild.Can be run from MSBuild. Pour plus d’informations, consultez MSBuild référence.For more information, see MSBuild Reference.
SignFile, tâcheSignFile Task Signe les manifestes d’application et de déploiement.Signs the application and deployment manifests.

Peut être exécuté à partir de MSBuild.Can be run from MSBuild. Pour plus d’informations, consultez MSBuild référence.For more information, see MSBuild Reference.
Microsoft.Build.Tasks.Deployment.ManifestUtilities Développer votre propre application pour générer les manifestes d’application et de déploiement.Develop your own application to generate the application and deployment manifests.

Le tableau suivant indique la version de .NET Framework requise pour prendre en charge des applications ClickOnce dans ces navigateurs.The following table shows the .NET Framework version required to support ClickOnce applications in these browsers.

VisiteurBrowser Version du .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

Voir aussiSee Also

Déploiement ClickOnce sur Windows Vista ClickOnce Deployment on Windows Vista
Publication d’applications ClickOnce Publishing ClickOnce Applications
Sécurisation des applications ClickOnce Securing ClickOnce Applications
Déploiement de composants COM avec ClickOnce Deploying COM Components with ClickOnce
Génération d’applications ClickOnce à partir de la ligne de commande Building ClickOnce Applications from the Command Line
Débogage des applications ClickOnce qui utilisent System.Deployment.ApplicationDebugging ClickOnce Applications That Use System.Deployment.Application