Protezione dichiarativa

Nella sintassi di protezione dichiarativa vengono utilizzati gli attributi per inserire informazioni relative alla protezione all'interno dei metadati del codice. Gli attributi possono essere inseriti a livello di assembly, di classe o di membro, per indicare il tipo di richiesta, di pretesa o di override che si desidera utilizzare. Le richieste vengono utilizzate nelle applicazioni basate su Common Language Runtime per fornire al sistema di protezione dell'ambiente di esecuzione le informazioni relative alle autorizzazioni necessarie o non necessarie per l'applicazione. Le pretese e gli override vengono utilizzati nelle librerie per proteggere le risorse dai chiamanti o per eseguire l'override del comportamento predefinito del meccanismo di protezione.

Per utilizzare le chiamate di protezione dichiarativa è necessario inizializzare i dati di stato dell'oggetto autorizzazione in modo che tale oggetto rappresenti la forma specifica di autorizzazione necessaria. Ciascuna autorizzazione incorporata dispone di un attributo cui è passata una enumerazione SecurityAction per descrivere il tipo di operazione di protezione che si desidera eseguire. Le autorizzazioni tuttavia accettano anche parametri specifici e disponibili esclusivamente per le autorizzazioni. Per una descrizione completa dei parametri specifici delle autorizzazioni, vedere la sezione relativa alle autorizzazioni incorporate.

Nel frammento di codice che segue viene illustrato l'utilizzo della sintassi dichiarativa per richiedere che i chiamanti del codice dispongano di un'autorizzazione personalizzata denominata MyPermission. Si tratta di un'autorizzazione personalizzata fittizia, che non esiste realmente in .NET Framework. Nell'esempio la chiamata dichiarativa viene eseguita immediatamente prima della definizione di classe, specificando che è necessario applicare l'autorizzazione a livello di classe. All'attributo viene passata una struttura SecurityAction.Demand per specificare che è necessario che, per poter essere eseguiti, i chiamanti dispongano di tale autorizzazione.

<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.
   }
}

Vedere anche

Riferimenti

SecurityAction

Concetti

Sintassi di protezione
Autorizzazioni di protezione

Altre risorse

Estensione di metadati mediante attributi
Protezione dall'accesso di codice
Metadati e componenti auto-descrittivi