Segurança e implantação do ClickOnceClickOnce security and deployment

ClickOnceClickOnceo é uma tecnologia de implantação que permite que você crie aplicativos baseados em Windows de atualização automática que podem ser instalados e executados com a interação mínima do usuário.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 Studiofornece suporte completo para publicar e atualizar aplicativos implantados com a tecnologia ClickOnce se você tiver desenvolvido seus projetos com C#o Visual Basic e o 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 obter informações sobre como implantar C++ aplicativos visuais, consulte implantação do ClickOnce C++ para aplicativos visuais.For information about deploying Visual C++ applications, see ClickOnce Deployment for Visual C++ Applications.

ClickOnceClickOncea implantação supera três problemas principais na implantação:deployment overcomes three major issues in deployment:

  • Dificuldades na atualização de aplicativos.Difficulties in updating applications. Com a implantação do Microsoft Windows Installer, sempre que um aplicativo é atualizado, o usuário pode instalar uma atualização, um arquivo MSP e aplicá-lo ao produto instalado; com ClickOnceClickOnce a implantação, você pode fornecer atualizações 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. Somente as partes do aplicativo que foram alteradas são baixadas e, em seguida, o aplicativo completo e atualizado é reinstalado a partir de uma nova pasta lado a lado.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 no computador do usuário.Impact to the user's computer. Com a implantação do Windows Installer, os aplicativos geralmente dependem de componentes compartilhados, com potencial para conflitos de controle de versão; com ClickOnceClickOnce a implantação, cada aplicativo é independente e não pode interferir em outros aplicativos.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.

  • Permissões de segurança.Security permissions. Windows Installer implantação requer permissões administrativas e permite apenas a instalação limitada do usuário; ClickOnceClickOnce a implantação permite que usuários não administrativos instalem e conceda apenas as permissões de segurança de acesso de código necessárias para o aplicativo.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.

    No passado, esses problemas às vezes fizeram com que os desenvolvedores optassem por criar aplicativos Web em vez de aplicativos baseados em Windows, sacrificando uma rica interface do usuário para facilitar a instalação.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. Usando aplicativos implantados ClickOnceClickOnceusando o, você pode ter o melhor de ambas as tecnologias.By using applications deployed using ClickOnceClickOnce, you can have the best of both technologies.

O que é um aplicativo ClickOnce?What is a ClickOnce application?

Um ClickOnceClickOnce aplicativo é qualquer Windows Presentation Foundation ( . XBAP), Windows Forms ( . exe), aplicativo de console ( . exe) ou solução do Office ( . dll) publicado ClickOnceClickOnce usando a tecnologia.A ClickOnceClickOnce application is any Windows Presentation Foundation (.xbap), Windows Forms (.exe), console application (.exe), or Office solution (.dll) published using ClickOnceClickOnce technology. Você pode publicar um ClickOnceClickOnce aplicativo de três maneiras diferentes: de uma página da Web, de um compartilhamento de arquivos de rede ou de mídia, como um 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. Um ClickOnceClickOnce aplicativo pode ser instalado no computador de um usuário final e ser executado localmente mesmo quando o computador estiver offline ou pode ser executado em um modo somente online sem a instalação permanente de qualquer coisa no computador do usuário 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 obter mais informações, consulte escolher uma estratégia de implantação do ClickOnce.For more information, see Choose a ClickOnce deployment strategy.

ClickOnceClickOnceos aplicativos podem ser atualizados automaticamente; Eles podem verificar se há versões mais recentes à medida que se tornam disponíveis e substituir automaticamente todos os arquivos atualizados.applications can be self-updating; they can check for newer versions as they become available and automatically replace any updated files. O desenvolvedor pode especificar o comportamento da atualização; um administrador de rede também pode controlar estratégias de atualização, marcando uma atualização como obrigatória, por exemplo.The developer can specify the update behavior; a network administrator can also control update strategies, for example, marking an update as mandatory. As atualizações também podem ser revertidas para uma versão anterior pelo usuário final ou por um administrador.Updates can also be rolled back to an earlier version by the end user or by an administrator. Para obter mais informações, consulte escolher uma estratégia de atualização do ClickOnce.For more information, see Choose a ClickOnce update strategy.

Como ClickOnceClickOnce os aplicativos são isolados, a instalação ou ClickOnceClickOnce a execução de um aplicativo não pode interromper os aplicativos existentes.Because ClickOnceClickOnce applications are isolated, installing or running a ClickOnceClickOnce application cannot break existing applications. ClickOnceClickOnceos aplicativos são independentes; cada ClickOnceClickOnce aplicativo é instalado e executado em um cache seguro por usuário por aplicativo.applications are self-contained; each ClickOnceClickOnce application is installed to and run from a secure per-user, per-application cache. ClickOnceClickOnceos aplicativos são executados nas zonas de segurança da Internet ou da intranet.applications run in the Internet or Intranet security zones. Se necessário, o aplicativo poderá solicitar permissões de segurança elevadas.If necessary, the application can request elevated security permissions. Para obter mais informações, consulte proteger aplicativos ClickOnce.For more information, see Secure ClickOnce applications.

Como funciona a segurança do ClickOnceHow ClickOnce security works

A segurança ClickOnceClickOnce principal é baseada em certificados, políticas de segurança de acesso a código e no prompt de confiança do ClickOnce.The core ClickOnceClickOnce security is based on certificates, code access security policies, and the ClickOnce trust prompt.

CertificadosCertificates

Os certificados Authenticode são usados para verificar a autenticidade do editor do aplicativo.Authenticode certificates are used to verify the authenticity of the application's publisher. Usando Authenticode para implantação de aplicativos, o ClickOnce ajuda a impedir que um programa prejudicial se defunda como um programa legítimo proveniente de uma fonte confiável e estabelecida.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, os certificados também podem ser usados para assinar os manifestos de aplicativo e de implantação para provar que os arquivos não foram adulterados.Optionally, certificates can also be used to sign the application and deployment manifests to prove that the files have not been tampered with. Para obter mais informações, consulte ClickOnce e Authenticode.For more information, see ClickOnce and Authenticode. Os certificados também podem ser usados para configurar os computadores cliente para que tenham uma lista de editores confiáveis.Certificates can also be used to configure client computers to have a list of trusted publishers. Se um aplicativo vier de um editor confiável, ele poderá ser instalado sem qualquer interação do usuário.If an application comes from a trusted publisher, it can be installed without any user interaction. Para obter mais informações, consulte visão geral da implantação de aplicativo confiável.For more information, see Trusted application deployment overview.

Segurança de acesso do códigoCode access security

A segurança de acesso ao código ajuda a limitar o acesso que o código tem aos recursos protegidos.Code access security helps limit the access that code has to protected resources. Na maioria dos casos, você pode escolher as zonas da Internet ou da intranet local para limitar as permissões.In most cases, you can choose the Internet or Local Intranet zones to limit the permissions. Use a página segurança no ProjectDesigner para solicitar a zona apropriada para o aplicativo.Use the Security page in the ProjectDesigner to request the zone appropriate for the application. Você também pode depurar aplicativos com permissões restritas para emular a experiência do usuário final.You can also debug applications with restricted permissions to emulate the end-user experience. Para obter mais informações, consulte Segurança de acesso do código para aplicativos ClickOnce.For more information, see Code access security for ClickOnce applications.

Prompt de confiança do ClickOnceClickOnce trust prompt

Se o aplicativo solicitar mais permissões do que a zona permite, o usuário final poderá ser solicitado a tomar uma decisão de confiança.If the application requests more permissions than the zone allows, the end user can be prompted to make a trust decision. O usuário final pode decidir se aplicativos ClickOnce, como Windows Forms aplicativos, Windows Presentation Foundation aplicativos, aplicativos de console, aplicativos de navegador XAML e soluções do Office são confiáveis para execução.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 obter mais informações, confira Como: Configurar o comportamento do prompt confiável do ClickOnce.For more information, see How to: Configure the ClickOnce trust prompt behavior.

Como funciona a implantação do ClickOnceHow ClickOnce deployment works

A arquitetura ClickOnceClickOnce de implantação principal baseia-se em dois arquivos de manifesto XML: um manifesto de aplicativo e um manifesto de implantação.The core ClickOnceClickOnce deployment architecture is based on two XML manifest files: an application manifest and a deployment manifest. Os arquivos são usados para descrever onde os aplicativos ClickOnce são instalados, como eles são atualizados e quando são atualizados.The files are used to describe where the ClickOnce applications are installed from, how they are updated, and when they are updated.

Publicar aplicativos ClickOncePublish ClickOnce applications

O manifesto do aplicativo descreve o próprio aplicativo.The application manifest describes the application itself. Isso inclui os assemblies, as dependências e os arquivos que compõem o aplicativo, as permissões necessárias e o local em que as atualizações estarão disponíveis.This includes the assemblies, the dependencies and files that make up the application, the required permissions, and the location where updates will be available. O desenvolvedor do aplicativo cria o manifesto do aplicativo usando o assistente de publicação no Visual Studio ou o Manifest Generation and Editing Tool (Mage. exe) Windows Software Development Kit (SDK)Windows Software Development Kit (SDK)no.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). Para obter mais informações, confira Como: Publicar um aplicativo ClickOnce usando o assistente de publicação.For more information, see How to: Publish a ClickOnce application using the Publish Wizard.

O manifesto de implantação descreve como o aplicativo é implantado.The deployment manifest describes how the application is deployed. Isso inclui o local do manifesto do aplicativo e a versão do aplicativo que os clientes devem executar.This includes the location of the application manifest, and the version of the application that clients should run.

Implantar aplicativos ClickOnceDeploy ClickOnce applications

Depois de criado, o manifesto de implantação é copiado para a localização de implantação.After it is created, the deployment manifest is copied to the deployment location. Pode ser um servidor Web, um compartilhamento de arquivo de rede ou uma mídia como um CD.This can be a Web server, network file share, or media such as a CD. O manifesto do aplicativo e todos os arquivos de aplicativo também são copiados para um local de implantação especificado no manifesto de implantação.The application manifest and all the application files are also copied to a deployment location that is specified in the deployment manifest. Pode ser igual à localização de implantação ou não.This can be the same as the deployment location, or it can be a different location. Ao usar o Assistente de publicação no Visual Studio, as operações de cópia são executadas automaticamente.When using the Publish Wizard in Visual Studio, the copy operations are performed automatically.

Instalar aplicativos ClickOnceInstall ClickOnce applications

Depois de colocado na localização de implantação, os usuários finais podem baixar e instalar o aplicativo clicando em um ícone que representa o arquivo de manifesto de implantação em uma página da Web ou em uma pasta.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. Na maioria dos casos, o usuário final recebe uma caixa de diálogo simples solicitando que o usuário confirme a instalação, depois que a instalação continua e o aplicativo é iniciado sem intervenção 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. Nos casos em que o aplicativo requer permissões elevadas ou se o aplicativo não está assinado por um certificado confiável, a caixa de diálogo também solicita que o usuário Conceda permissão antes que a instalação possa 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. Embora as instalações do ClickOnce sejam por usuário, a elevação de permissão pode ser necessária se houver pré-requisitos que exijam privilégios de administrador.Though ClickOnce installs are per-user, permission elevation may be required if there are prerequisites that require administrator privileges. Para obter mais informações sobre permissões elevadas, consulte Securing ClickOnce Applications.For more information about elevated permissions, see Securing ClickOnce applications.

Os certificados podem ser confiáveis no nível da máquina ou da empresa, para que os aplicativos ClickOnce assinados com um certificado confiável possam ser instalados silenciosamente.Certificates can be trusted at the machine or enterprise level, so that ClickOnce applications signed with a trusted certificate can install silently. Para obter mais informações sobre certificados confiáveis, consulte visão geral da implantação de aplicativos confiáveis.For more information about trusted certificates, see Trusted application deployment overview.

O aplicativo pode ser adicionado ao menu Iniciar do usuário e ao grupo Adicionar ou remover programas no painel de controle.The application can be added to the user's Start menu and to the Add or Remove Programs group in the Control Panel. Ao contrário de outras tecnologias de implantação, nada é adicionado à pasta arquivos de programas ou ao registro, e nenhum direito administrativo é necessário para a instalaçãoUnlike other deployment technologies, nothing is added to the Program Files folder or the registry, and no administrative rights are required for installation

Note

Também é possível impedir que o aplicativo seja adicionado ao menu Iniciar e Adicionar ou remover o grupo de programas, de forma que ele se comporte como um aplicativo 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 obter mais informações, consulte escolher uma estratégia de implantação do ClickOnce.For more information, see Choose a ClickOnce deployment strategy.

Atualizar aplicativos ClickOnceUpdate ClickOnce applications

Quando os desenvolvedores de aplicativos criam uma versão atualizada do aplicativo, eles geram um novo manifesto do aplicativo e copiam arquivos para um local de implantação — geralmente uma pasta irmã para a pasta de implantação do aplicativo 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. O administrador atualiza o manifesto de implantação para que ele aponte para a localização da nova versão do aplicativo.The administrator updates the deployment manifest to point to the location of the new version of the application.

Note

O Assistente de publicação no Visual Studio pode ser usado para executar essas etapas.The Publish Wizard in Visual Studio can be used to perform these steps.

Além da localização da implantação, o manifesto de implantação também contém uma localização de atualização (uma página da Web ou um compartilhamento de arquivo na rede), em que o aplicativo verifica a existência de versões atualizadas.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. ClickOnceClickOnceAs propriedades de publicação são usadas para especificar quando e com que frequência o aplicativo deve verificar se há atualizações.Publish properties are used to specify when and how often the application should check for updates. O ClickOnceClickOnce comportamento de atualização pode ser especificado no manifesto de implantação ou pode ser apresentado como opções de usuário na interface do usuário do aplicativo por meio das APIs.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. Além disso, as propriedades Publish podem ser empregadas para tornar as atualizações obrigatórias ou para a reversão para uma versão anterior.In addition, Publish properties can be employed to make updates mandatory or to roll back to an earlier version. Para obter mais informações, confira Escolhendo uma estratégia de atualização do ClickOnce.For more information, see Choosing a ClickOnce update strategy.

Instaladores de terceirosThird party installers

Você pode personalizar o instalador do ClickOnce para instalar componentes de terceiros junto com seu aplicativo.You can customize your ClickOnce installer to install third-party components along with your application. Você deve ter o pacote redistribuível (arquivo. exe ou. msi) e descrever o pacote com um manifesto de produto com neutralidade de idioma e um manifesto de pacote específico de 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 obter mais informações, consulte Creating bootstrapper Packages.For more information, see Creating bootstrapper packages.

Ferramentas do ClickOnceClickOnce tools

A tabela a seguir mostra as ferramentas que você pode usar para gerar, editar, assinar e assinar novamente o aplicativo e os manifestos de implantação.The following table shows the tools that you can use to generate, edit, sign, and re-sign the application and deployment manifests.

FerramentaTool DescriçãoDescription
Página Segurança, Designer de ProjetoSecurity Page, Project Designer Assina os manifestos de aplicativo e implantação.Signs the application and deployment manifests.
Página de Publicação, Designer de ProjetoPublish Page, Project Designer Gera e edita os manifestos de aplicativo e implantação para aplicativos Visual Basic e C# Visual.Generates and edits the application and deployment manifests for Visual Basic and Visual C# applications.
Mage.exe (Manifest Generation and Editing Tool)Mage.exe (Manifest Generation and Editing Tool) Gera os manifestos de aplicativo e implantação para aplicativos Visual Basic C#, Visual e C++ Visual.Generates the application and deployment manifests for Visual Basic, Visual C#, and Visual C++ applications.

Assina e assina novamente os manifestos de aplicativo e implantação.Signs and re-signs the application and deployment manifests.

Pode ser executado de scripts do lote e do prompt de comando.Can be run from batch scripts and the command prompt.
MageUI.exe (Manifest Generation and Editing Tool, cliente gráfico)MageUI.exe (Manifest Generation and Editing Tool, Graphical Client) Gera e edita os manifestos de aplicativo e implantação.Generates and edits the application and deployment manifests.

Assina e assina novamente os manifestos de aplicativo e implantação.Signs and re-signs the application and deployment manifests.
Tarefa GenerateApplicationManifestGenerateApplicationManifest task Gera o manifesto do aplicativo.Generates the application manifest.

Pode ser executado do MSBuild.Can be run from MSBuild. Para mais informações, confira veja Referência do MSBuild.For more information, see MSBuild reference.
Tarefa GenerateDeploymentManifestGenerateDeploymentManifest task Gera o manifesto de implantação.Generates the deployment manifest.

Pode ser executado do MSBuild.Can be run from MSBuild. Para mais informações, confira veja Referência do MSBuild.For more information, see MSBuild reference.
Tarefa SignFileSignFile task Assina os manifestos de aplicativo e implantação.Signs the application and deployment manifests.

Pode ser executado do MSBuild.Can be run from MSBuild. Para mais informações, confira veja Referência do MSBuild.For more information, see MSBuild reference.
Microsoft. Build. Tasks. Deployment. ManifestUtilitiesMicrosoft.Build.Tasks.Deployment.ManifestUtilities Desenvolva seu próprio aplicativo para gerar os manifestos de aplicativo e implantação.Develop your own application to generate the application and deployment manifests.

A tabela a seguir mostra a versão .NET Framework necessária para dar suporte a aplicativos ClickOnce nesses navegadores.The following table shows the .NET Framework version required to support ClickOnce applications in these browsers.

NavegadorBrowser Versão do .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

Consulte tambémSee also