Seguridad e implementación ClickOnceClickOnce security and deployment

ClickOnceClickOncees una tecnología de implementación que permite crear aplicaciones basadas en Windows de actualización automática que se pueden instalar y ejecutar con una interacción mínima del usuario.is a deployment technology that enables you to create self-updating Windows-based applications that can be installed and run with minimal user interaction. Programa para la mejoraVisual Studioproporciona compatibilidad completa para publicar y actualizar las aplicaciones implementadas con la tecnología ClickOnce si ha desarrollado sus proyectos con Visual Basic C#y 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#. Para obtener información sobre la implementación C++ de aplicaciones visuales, vea ClickOnce Deployment C++ for Visual Applications.For information about deploying Visual C++ applications, see ClickOnce Deployment for Visual C++ Applications.

ClickOnceClickOncela implementación supera tres problemas principales en la implementación:deployment overcomes three major issues in deployment:

  • Dificultades en la actualización de aplicaciones.Difficulties in updating applications. Con Microsoft Windows Installer implementación, cada vez que se actualiza una aplicación, el usuario puede instalar una actualización, un archivo MSP y aplicarla al producto instalado. con ClickOnceClickOnce la implementación, puede proporcionar las actualizaciones automáticamente.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. Solo se descargan las partes de la aplicación que han cambiado y, a continuación, se vuelve a instalar la aplicación completa y actualizada desde una nueva carpeta en paralelo.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.

  • Impacto en el equipo del usuario.Impact to the user's computer. Con Windows Installer implementación, las aplicaciones a menudo se basan en componentes compartidos, con la posibilidad de que se produzcan conflictos de control de versiones. con ClickOnceClickOnce la implementación, cada aplicación es independiente y no puede interferir con otras aplicaciones.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.

  • Permisos de seguridad.Security permissions. Windows Installer implementación requiere permisos administrativos y solo permite una instalación limitada del usuario; ClickOnceClickOnce la implementación permite a los usuarios no administrativos instalar y conceder solo los permisos de seguridad de acceso del código necesarios para la aplicación.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.

    En el pasado, estos problemas a veces hacían que los desarrolladores decidieran crear aplicaciones web en lugar de aplicaciones basadas en Windows, con lo que se sacrificaba una interfaz de usuario enriquecida para facilitar la instalación.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. Mediante el uso de aplicaciones ClickOnceClickOnceimplementadas con, puede tener las mejores tecnologías.By using applications deployed using ClickOnceClickOnce, you can have the best of both technologies.

¿Qué es una aplicación ClickOnce?What is a ClickOnce application?

Una ClickOnceClickOnce aplicación es cualquier Windows Presentation Foundation ( . XBAP), Windows Forms ( . exe), una aplicación de consola ( . exe) o una solución de Office ( . dll) publicada mediante ClickOnceClickOnce tecnología.A ClickOnceClickOnce application is any Windows Presentation Foundation (.xbap), Windows Forms (.exe), console application (.exe), or Office solution (.dll) published using ClickOnceClickOnce technology. Puede publicar una ClickOnceClickOnce aplicación de tres maneras diferentes: desde una página web, desde un recurso compartido de archivos de red o desde un medio, como 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. Una ClickOnceClickOnce aplicación se puede instalar en el equipo de un usuario final y ejecutarse localmente incluso cuando el equipo está sin conexión, o bien se puede ejecutar en modo de solo conexión sin tener que instalar nada permanentemente en el equipo del usuario 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. Para obtener más información, vea elegir una estrategia de implementación de ClickOnce.For more information, see Choose a ClickOnce deployment strategy.

ClickOnceClickOncelas aplicaciones pueden actualizarse automáticamente. pueden comprobar si hay versiones más recientes a medida que estén disponibles y reemplazar automáticamente los archivos actualizados.applications can be self-updating; they can check for newer versions as they become available and automatically replace any updated files. El desarrollador puede especificar el comportamiento de actualización, y un administrador de red puede igualmente controlar las estrategias del proceso, por ejemplo, al marcar actualizaciones como obligatorias.The developer can specify the update behavior; a network administrator can also control update strategies, for example, marking an update as mandatory. El usuario final o un administrador también pueden revertir las actualizaciones a una versión anterior.Updates can also be rolled back to an earlier version by the end user or by an administrator. Para obtener más información, vea elegir una estrategia de actualización de ClickOnce.For more information, see Choose a ClickOnce update strategy.

Dado ClickOnceClickOnce que las aplicaciones están aisladas, la ClickOnceClickOnce instalación o ejecución de una aplicación no puede interrumpir las aplicaciones existentes.Because ClickOnceClickOnce applications are isolated, installing or running a ClickOnceClickOnce application cannot break existing applications. ClickOnceClickOncelas aplicaciones son independientes; cada ClickOnceClickOnce aplicación se instala y se ejecuta desde una caché segura por usuario y por aplicación.applications are self-contained; each ClickOnceClickOnce application is installed to and run from a secure per-user, per-application cache. ClickOnceClickOncelas aplicaciones se ejecutan en las zonas de seguridad de Internet o intranet.applications run in the Internet or Intranet security zones. Si resultara necesario, la aplicación puede solicitar permisos de seguridad elevados.If necessary, the application can request elevated security permissions. Para obtener más información, consulte Secure ClickOnce Applications.For more information, see Secure ClickOnce applications.

Cómo funciona la seguridad de ClickOnceHow ClickOnce security works

La seguridad ClickOnceClickOnce básica se basa en los certificados, las directivas de seguridad de acceso del código y el mensaje de confianza de ClickOnce.The core ClickOnceClickOnce security is based on certificates, code access security policies, and the ClickOnce trust prompt.

CertificadosCertificates

Los certificados Authenticode se usan para comprobar la autenticidad del publicador de la aplicación.Authenticode certificates are used to verify the authenticity of the application's publisher. Mediante el uso de Authenticode para la implementación de aplicaciones, ClickOnce ayuda a impedir que un programa perjudicial se represente como un programa legítimo procedente de un origen establecido y de confianza.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. Opcionalmente, los certificados también se pueden usar para firmar la aplicación y los manifiestos de implementación para demostrar que los archivos no se han alterado.Optionally, certificates can also be used to sign the application and deployment manifests to prove that the files have not been tampered with. Para obtener más información, vea ClickOnce y Authenticode.For more information, see ClickOnce and Authenticode. Los certificados también se pueden usar para configurar los equipos cliente para que tengan una lista de editores de confianza.Certificates can also be used to configure client computers to have a list of trusted publishers. Si una aplicación procede de un editor de confianza, se puede instalar sin interacción del usuario.If an application comes from a trusted publisher, it can be installed without any user interaction. Para más información, vea Introducción a la implementación de aplicaciones de confianza.For more information, see Trusted application deployment overview.

Seguridad de acceso del códigoCode access security

La seguridad de acceso del código ayuda a limitar el acceso que el código tiene a los recursos protegidos.Code access security helps limit the access that code has to protected resources. En la mayoría de los casos, puede elegir las zonas de Internet o Intranet local para limitar los permisos.In most cases, you can choose the Internet or Local Intranet zones to limit the permissions. Use la página de seguridad de ProjectDesigner para solicitar la zona adecuada para la aplicación.Use the Security page in the ProjectDesigner to request the zone appropriate for the application. También puede depurar aplicaciones con permisos restringidos para emular la experiencia del usuario final.You can also debug applications with restricted permissions to emulate the end-user experience. Para más información, vea Seguridad de acceso del código para aplicaciones ClickOnce.For more information, see Code access security for ClickOnce applications.

Solicitud de fiabilidad de ClickOnceClickOnce trust prompt

Si la aplicación solicita más permisos de los que permite la zona, se puede solicitar al usuario final que tome una decisión de confianza.If the application requests more permissions than the zone allows, the end user can be prompted to make a trust decision. El usuario final puede decidir si las aplicaciones ClickOnce, como Windows Forms aplicaciones, las aplicaciones de Windows Presentation Foundation, las aplicaciones de consola, las aplicaciones de explorador XAML y las soluciones de Office son de confianza para ejecutarse.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. Para obtener más información, vea Cómo: Configuración del comportamiento del mensaje sobre la confianza de ClickOnce.For more information, see How to: Configure the ClickOnce trust prompt behavior.

Cómo funciona la implementación ClickOnceHow ClickOnce deployment works

La arquitectura ClickOnceClickOnce de implementación principal se basa en dos archivos de manifiesto XML: un manifiesto de aplicación y un manifiesto de implementación.The core ClickOnceClickOnce deployment architecture is based on two XML manifest files: an application manifest and a deployment manifest. Los archivos se usan para describir el lugar desde el que se instalan las aplicaciones ClickOnce, cómo se actualizan y cuándo se actualizan.The files are used to describe where the ClickOnce applications are installed from, how they are updated, and when they are updated.

Publicación de aplicaciones ClickOncePublish ClickOnce applications

El manifiesto de aplicación describe la propia aplicación.The application manifest describes the application itself. Esto incluye los ensamblados, las dependencias y los archivos que componen la aplicación, los permisos necesarios y la ubicación en la que estarán disponibles las actualizaciones.This includes the assemblies, the dependencies and files that make up the application, the required permissions, and the location where updates will be available. El desarrollador de aplicaciones crea el manifiesto de aplicación mediante el Asistente para publicación de Visual Studio o el Herramienta de generación y edición de manifiestos (Mage. exe) Kit de desarrollo de software de Windows (SDK)Windows Software Development Kit (SDK)en.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 desarrollo de software de Windows (SDK)Windows Software Development Kit (SDK). Para obtener más información, consulte Cómo Publicación de una aplicación ClickOnce mediante el Asistente para publicación.For more information, see How to: Publish a ClickOnce application using the Publish Wizard.

El manifiesto de implementación describe cómo se implementa la aplicación.The deployment manifest describes how the application is deployed. Esto incluye la ubicación del manifiesto de aplicación y la versión de la aplicación que deben ejecutar los clientes.This includes the location of the application manifest, and the version of the application that clients should run.

Implementar aplicaciones ClickOnceDeploy ClickOnce applications

Una vez creada, el manifiesto de implementación se copia en la ubicación de implementación.After it is created, the deployment manifest is copied to the deployment location. Puede tratarse de un servidor web, un recurso compartido de archivos de red o algún otro medio (por ejemplo, un CD-ROM).This can be a Web server, network file share, or media such as a CD. El manifiesto de aplicación y todos los archivos de aplicación también se copian en una ubicación de implementación que se especifica en el manifiesto de implementación.The application manifest and all the application files are also copied to a deployment location that is specified in the deployment manifest. Puede ser la misma que la ubicación de implementación o una ubicación diferente.This can be the same as the deployment location, or it can be a different location. Cuando se usa el Asistente para publicación en Visual Studio, las operaciones de copia se realizan automáticamente.When using the Publish Wizard in Visual Studio, the copy operations are performed automatically.

Instalar aplicaciones ClickOnceInstall ClickOnce applications

Una vez implementada en la ubicación de implementación, los usuarios finales pueden descargar e instalar la aplicación haciendo clic en un icono que representa el archivo de manifiesto de implementación en una página web o en una carpeta.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. En la mayoría de los casos, al usuario final se le presenta un sencillo cuadro de diálogo que pide al usuario que confirme la instalación, tras lo cual la instalación continúa y la aplicación se inicia sin intervención adicional.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. En los casos en los que la aplicación requiere permisos elevados o si la aplicación no está firmada por un certificado de confianza, el cuadro de diálogo también solicita al usuario que conceda permiso para que la instalación pueda continuar.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. Aunque las instalaciones de ClickOnce son por usuario, es posible que se requiera la elevación de permisos si hay requisitos previos que requieran privilegios de administrador.Though ClickOnce installs are per-user, permission elevation may be required if there are prerequisites that require administrator privileges. Para obtener más información sobre los permisos elevados, vea proteger las aplicaciones ClickOnce.For more information about elevated permissions, see Securing ClickOnce applications.

Los certificados pueden ser de confianza en el nivel de equipo o de empresa, por lo que las aplicaciones ClickOnce firmadas con un certificado de confianza se pueden instalar de forma silenciosa.Certificates can be trusted at the machine or enterprise level, so that ClickOnce applications signed with a trusted certificate can install silently. Para obtener más información sobre los certificados de confianza, consulte información generalsobre la implementación de aplicaciones de confianza.For more information about trusted certificates, see Trusted application deployment overview.

La aplicación se puede Agregar al menú Inicio del usuario y al grupo Agregar o quitar programas del Panel de control.The application can be added to the user's Start menu and to the Add or Remove Programs group in the Control Panel. A diferencia de otras tecnologías de implementación, no se agrega nada a la carpeta archivos de programa o al registro, y no se requieren derechos administrativos para la instalación.Unlike other deployment technologies, nothing is added to the Program Files folder or the registry, and no administrative rights are required for installation

Note

También es posible impedir que la aplicación se agregue al menú Inicio y al grupo Agregar o quitar programas , en efecto que se comporte como una aplicación 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. Para obtener más información, vea elegir una estrategia de implementación de ClickOnce.For more information, see Choose a ClickOnce deployment strategy.

Actualizar aplicaciones ClickOnceUpdate ClickOnce applications

Cuando los desarrolladores de aplicaciones crean una versión actualizada de la aplicación, generan un nuevo manifiesto de aplicación y copian los archivos en una ubicación de implementación, normalmente una carpeta relacionada en la carpeta de implementación de la aplicación original.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. El administrador actualiza el manifiesto de implementación para que apunte a la ubicación de la nueva versión de la aplicación.The administrator updates the deployment manifest to point to the location of the new version of the application.

Note

El Asistente para publicación de Visual Studio se puede usar para realizar estos pasos.The Publish Wizard in Visual Studio can be used to perform these steps.

Además de la ubicación de implementación, el manifiesto de implementación también contiene una ubicación de actualización (una página web o un recurso compartido de archivos de red) donde la aplicación comprueba si hay versiones actualizadas.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. ClickOnceClickOnceLas propiedades de publicación se utilizan para especificar el momento y la frecuencia con que la aplicación debe comprobar si hay actualizaciones.Publish properties are used to specify when and how often the application should check for updates. El comportamiento de actualización se puede especificar en el manifiesto de implementación, o bien se puede presentar como elección del usuario en la interfaz de usuario de ClickOnceClickOnce la aplicación mediante las 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. Además, las propiedades Publish se pueden emplear para que las actualizaciones sean obligatorias o para deshacer la instalación y volver a una versión anterior.In addition, Publish properties can be employed to make updates mandatory or to roll back to an earlier version. Para obtener más información, vea elegir una estrategia de actualización de ClickOnce.For more information, see Choosing a ClickOnce update strategy.

Instaladores de tercerosThird party installers

Puede personalizar el instalador de ClickOnce para instalar componentes de terceros junto con la aplicación.You can customize your ClickOnce installer to install third-party components along with your application. Debe tener el paquete redistribuible (archivo. exe o. msi) y describir el paquete con un manifiesto de producto independiente del lenguaje y un manifiesto de paquete específico del idioma.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. Para obtener más información, vea crear paquetes de programa previo.For more information, see Creating bootstrapper packages.

Herramientas ClickOnceClickOnce tools

En la tabla siguiente se muestran las herramientas que puede usar para generar, editar, firmar y volver a firmar los manifiestos de aplicación e implementación.The following table shows the tools that you can use to generate, edit, sign, and re-sign the application and deployment manifests.

HerramientaTool DESCRIPCIÓNDescription
Página Seguridad, Diseñador de proyectosSecurity Page, Project Designer Firma los manifiestos de aplicación y de implementación.Signs the application and deployment manifests.
Panel Publicar, Diseñador de proyectosPublish Page, Project Designer Genera y edita los manifiestos de aplicación y de implementación para las aplicaciones C# de Visual Basic y visual.Generates and edits the application and deployment manifests for Visual Basic and Visual C# applications.
Mage.exe (Herramienta de generación y edición de manifiestos)Mage.exe (Manifest Generation and Editing Tool) Genera los manifiestos de aplicación y de implementación para las C#aplicaciones de Visual Basic C++ , visual y visual.Generates the application and deployment manifests for Visual Basic, Visual C#, and Visual C++ applications.

Firma y vuelve a firmar los manifiestos de aplicación e implementación.Signs and re-signs the application and deployment manifests.

Se puede ejecutar desde scripts por lotes y desde el símbolo del sistema.Can be run from batch scripts and the command prompt.
MageUI.exe (Herramienta de generación y edición de manifiestos, cliente gráfico)MageUI.exe (Manifest Generation and Editing Tool, Graphical Client) Genera y edita los manifiestos de aplicación e implementación.Generates and edits the application and deployment manifests.

Firma y vuelve a firmar los manifiestos de aplicación e implementación.Signs and re-signs the application and deployment manifests.
GenerateApplicationManifest (Tarea)GenerateApplicationManifest task Genera el manifiesto de aplicación.Generates the application manifest.

Se puede ejecutar desde MSBuild.Can be run from MSBuild. Para más información, consulte la Referencia de MSBuild.For more information, see MSBuild reference.
Tarea GenerateDeploymentManifestGenerateDeploymentManifest task Genera el manifiesto de implementación.Generates the deployment manifest.

Se puede ejecutar desde MSBuild.Can be run from MSBuild. Para más información, consulte la Referencia de MSBuild.For more information, see MSBuild reference.
SignFile (Tarea)SignFile task Firma los manifiestos de aplicación y de implementación.Signs the application and deployment manifests.

Se puede ejecutar desde MSBuild.Can be run from MSBuild. Para más información, consulte la Referencia de MSBuild.For more information, see MSBuild reference.
Microsoft. Build. Tasks. Deployment. ManifestUtilitiesMicrosoft.Build.Tasks.Deployment.ManifestUtilities Desarrolle su propia aplicación para generar los manifiestos de aplicación y de implementación.Develop your own application to generate the application and deployment manifests.

En la tabla siguiente se muestra la versión .NET Framework necesaria para admitir aplicaciones ClickOnce en estos exploradores.The following table shows the .NET Framework version required to support ClickOnce applications in these browsers.

BrowserBrowser Versión de .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

Vea tambiénSee also