Compartilhar via


Segurança de acesso de código para aplicativos ClickOnce

Os aplicativos ClickOnce são baseados no .NET Framework e estão sujeitos a restrições de segurança de acesso de código. Por esse motivo, é importante que você entenda as implicações da segurança de acesso ao código e escreva seus aplicativos ClickOnce adequadamente.

A segurança de acesso ao código é um mecanismo no .NET Framework que ajuda a limitar o acesso que o código tem a recursos e operações protegidos. Você deve configurar as permissões de segurança de acesso de código para seu aplicativo ClickOnce, para usar a zona correspondente ao local do instalador do aplicativo. Na maioria dos casos, você pode escolher a zona da Internet para um conjunto limitado de permissões ou a zona intranet local para um conjunto maior de permissões.

Observação

No ClickOnce para .NET Core e .NET 5 ou posterior, a Segurança de Acesso ao Código não tem suporte. No .NET Framework, o uso da Segurança de Acesso ao Código não é uma prática recomendada e não é recomendado.

Segurança padrão de acesso ao código ClickOnce

Por padrão, um aplicativo ClickOnce recebe permissões de Confiança Total quando é instalado ou executado em um computador cliente.

  • Um aplicativo que tem permissões de Confiança Total tem acesso irrestrito a recursos como o sistema de arquivos e o registro. Isso potencialmente permite que seu aplicativo (e o sistema do usuário final) sejam explorados por código mal-intencionado.

  • Quando um aplicativo requer permissões de Confiança Total, o usuário final pode ser solicitado a conceder permissões ao aplicativo. Isso significa que o aplicativo não proporciona de fato uma experiência ClickOnce, tornando o prompt confuso para usuários menos experientes.

    Observação

    Ao instalar um aplicativo de mídia removível, como um CD-ROM, o usuário não é solicitado. Além disso, um administrador de rede pode configurar a política de rede para que os usuários não sejam solicitados quando instalam um aplicativo de uma fonte confiável. Para obter mais informações, consulte a visão geral da implantação de aplicativos confiáveis.

    Para restringir as permissões de um aplicativo ClickOnce, você pode modificar as permissões de segurança de acesso de código para seu aplicativo para solicitar a zona que melhor se ajusta às permissões necessárias ao aplicativo. Na maioria dos casos, você pode selecionar a zona na qual o aplicativo está sendo implantado. Por exemplo, se o aplicativo for um aplicativo empresarial, você poderá usar a zona intranet local . Se o aplicativo for um aplicativo da Internet, você poderá usar a zona da Internet .

Configurar permissões de segurança

Você sempre deve configurar seu aplicativo ClickOnce para solicitar a zona apropriada para limitar as permissões de segurança de acesso ao código. Você pode configurar permissões de segurança na página Segurança do Designer de Projeto.

A página Segurança no Designer de Projeto contém uma caixa de seleção Habilitar Configurações de Segurança do ClickOnce . Quando essa caixa de seleção é selecionada, as solicitações de permissão de segurança são adicionadas ao manifesto de implantação do aplicativo. No momento da instalação, o usuário será solicitado a conceder permissões se as permissões solicitadas excederem as permissões padrão para a zona da qual o aplicativo é implantado. Para obter mais informações, consulte Como habilitar as configurações de segurança do ClickOnce.

Os aplicativos implantados de locais diferentes recebem diferentes níveis de permissões sem solicitação. Por exemplo, quando um aplicativo é implantado da Internet, ele recebe um conjunto altamente restritivo de permissões. Quando instalado de uma Intranet local, ele recebe mais permissões e, quando instalado de um CD-ROM, recebe permissões de Confiança Total.

Como ponto de partida para configurar permissões, você pode selecionar uma zona de segurança na lista Zona na página Segurança . Se seu aplicativo potencialmente for implantado em mais de uma zona, selecione a zona com as permissões mínimas. Para obter mais informações, consulte Como definir uma zona de segurança para um aplicativo ClickOnce.

As propriedades que podem ser definidas variam de acordo com o conjunto de permissões; nem todos os conjuntos de permissões têm propriedades configuráveis. Para obter mais informações sobre a lista completa de permissões que seu aplicativo pode solicitar, consulte System.Security.Permissions. Para obter mais informações sobre como definir permissões para uma zona personalizada, consulte Como definir permissões personalizadas para um aplicativo ClickOnce.

Depurar um aplicativo que tem permissões restritas

Como desenvolvedor, você provavelmente executará seu computador de desenvolvimento com permissões de Confiança Total. Portanto, você não vê as mesmas exceções de segurança ao depurar o aplicativo que os usuários podem ver ao executá-lo com permissões restritas.

Para capturar essas exceções, você precisa debugar a aplicação com as mesmas permissões que o usuário final. A depuração com permissões restritas pode ser habilitada na página Segurança do Designer de Projeto.

Quando você depura um aplicativo com permissões restritas, as exceções serão geradas para quaisquer demandas de segurança de código que não tenham sido habilitadas na página Segurança . Um auxiliar de exceção será exibido, fornecendo sugestões sobre como modificar seu código para evitar a exceção.

Além disso, quando você escreve código, o recurso IntelliSense no Editor de Código desabilitará todos os membros que não estão incluídos nas permissões de segurança configuradas.

Para obter mais informações, consulte Como depurar um aplicativo ClickOnce com permissões restritas.

Permissões de segurança para aplicativos hospedados pelo navegador

O Visual Studio fornece os seguintes tipos de projeto para aplicativos WPF (Windows Presentation Foundation):

  • Aplicativo WPF do Windows

  • Aplicativo WPF Web Browser

  • Biblioteca de controle personalizado do WPF

  • Biblioteca de Serviços do WPF

    Desses tipos de projeto, somente aplicativos WPF Web Browser são hospedados em um navegador da Web e, portanto, exigem configurações especiais de implantação e segurança. As configurações de segurança padrão para esses aplicativos são as seguintes:

  • Habilitar configurações de segurança do ClickOnce

  • Este é um aplicativo de confiança parcial

  • Zona da Internet (com o conjunto de permissões padrão para aplicativos WPF Web Browser selecionados)

    Na caixa de diálogo Configurações de Segurança Avançada , a caixa de seleção Depurar este aplicativo com a caixa de seleção de conjunto de permissões selecionada está marcada e desabilitada. Isso ocorre porque a Depuração na Zona não pode ser desativada para aplicativos hospedados pelo navegador.