Segurança declarativa

A sintaxe de segurança declarativa usa os atributos para colocar as informações de segurança nos metadados do seu código. Os atributos podem ser colocados no assembly, na classe ou no nível de membro para indicar o tipo de solicitação, demanda ou substituição que deseja usar. As solicitações são usadas em aplicativos que tenham como alvo o common language runtime para informar o sistema de segurança em tempo de execução sobre as permissões que seu aplicativo precisa ou não deseja. As demandas e substituições são usadas nas bibliotecas para ajudar a proteger os recursos dos chamadores ou para substituir o comportamento de segurança padrão.

Dica

Em .NET Framework 4, houve mudanças importantes para o modelo de segurança e a terminologia do .NET Framework.Para obter mais informações sobre essas alterações, consulte Alterações na segurança do .NET Framework.

Para usar chamadas de segurança declarativas, você deve inicializar os dados do estado do objeto de permissão para que ele represente a forma particular de permissão que você precisa. Cada permissão integrada tem um atributo passado com uma enumeração SecurityAction para descrever o tipo de operação de segurança que você deseja executar. No entanto, as permissões também aceitam seus próprios parâmetros que são exclusivos para eles. Para obter uma descrição completa dos parâmetros específicos para permissões, consulte a seção descrevendo as permissões integradas.

O fragmento de código a seguir mostra a sintaxe declarativa para solicitar que os chamadores de seu código tenham uma permissão personalizada chamada MyPermission. Essa permissão é uma permissão personalizada hipotética, e não existe no .NET Framework. Neste exemplo, a chamada declarativa é colocada diretamente antes da definição de classe, especificando que esta permissão é aplicada ao nível da classe. O atributo é passado para uma estrutura SecurityAction.Demand para especificar que os chamadores devem ter essa permissão para funcionar.

<MyPermission(SecurityAction.Demand, Unrestricted = True)> Public Class MyClass1
   
   Public Sub New()
      'The constructor is protected by the security call.
   End Sub
   
   
   Public Sub MyMethod()
      'This method is protected by the security call.
   End Sub
   
   
   Public Sub YourMethod()
      'This method is protected by the security call.
   End Sub
End Class
[MyPermission(SecurityAction.Demand, Unrestricted = true)]
public class MyClass
{
   public MyClass()
   {
      //The constructor is protected by the security call.
   }

   public void MyMethod()
   {
      //This method is protected by the security call.
   }

   public void YourMethod()
   {
      //This method is protected by the security call.
   }
}

Consulte também

Referência

SecurityAction

Conceitos

Noções básicas da segurança de acesso do código

Permissões de segurança

Outros recursos

Estendendo metadados por meio de atributos

Segurança de acesso do código

Metadados e componentes autodescritivos