Noções Básicas sobre Segurança de Accesso a Código

Todos os aplicativos que acessam o common language runtime (isto é, cada aplicativo gerenciado) devem interagir com o sistema de segurança do runtime. Quando um aplicativo gerenciado é carregado, o seu host lhe concede automaticamente um conjunto de permissões. Essas permissões são determinadas pelas configurações de segurança local do host ou pela área de segurança, que o aplicativo está no. Dependendo dessas permissões, o aplicativo é executado corretamente ou gera uma exceção de segurança.

O host padrão para aplicativos de desktop permite que o código executado em confiança total. Portanto, se seu aplicativo destina-se a área de trabalho, ele tem uma permissão irrestrita definido. Outros hosts ou caixas de proteção fornecem um conjunto de aplicativos de permissão limitada. Como o conjunto de permissões pode mudar de host para host, você deve projetar seu aplicativo para usar somente as permissões que seu host de destino permite

Você deve estar familiarizado com os seguintes conceitos de segurança de acesso de código para escrever aplicativos efetivos destino o common language runtime:

  • Escrever o código de tipo seguro: Para ativar o código tirar proveito da segurança de acesso ao código, você deve usar um compilador que gera o código de segurança de tipo verificável. Para obter mais informações, consulte Escrever o código de segurança de tipo verificável.

  • Sintaxe imperativa e declarativa: Interação com o sistema de segurança de tempo de execução é realizada usando chamadas de segurança imperativas e declarativas. Chamadas declarativas são executadas usando atributos; chamadas imperativas são executadas usando novas instâncias de classes dentro de seu código. Algumas chamadas podem ser executadas apenas imperativa, outras pessoas podem ser executadas apenas declarativamente e algumas chamadas podem ser executadas de qualquer maneira. Para obter mais informações, consulte Sintaxe de segurança.

  • Usando bibliotecas de classes seguras: Bibliotecas de classe usam segurança de acesso ao código para especificar as permissões que eles necessitam para ser acessado. Você deve estar ciente das permissões necessárias para acessar qualquer biblioteca que usa o seu código.

  • Código Transparent: No .NET Framework versão 4 e posterior, para além de identificar as permissões específicas, você também deve determinar se seu código deve ser executado como segurança transparente. Código transparent de segurança não pode chamar tipos ou membros que são identificados como críticos de segurança. Essa regra se aplica a aplicativos de confiança total, bem como os aplicativos parcialmente confiáveis. Para obter mais informações, consulte Usando bibliotecas de classe Secure e Código Transparent de segurança.

Consulte também

Conceitos

Escrevendo verificável com código de tipo seguro

Sintaxe de segurança

Solicitando permissões

Usando bibliotecas de classe seguro

Segurança de Acesso de código