Condividi tramite


Sicurezza dichiarativa

Nella sintassi di sicurezza dichiarativa vengono utilizzati gli attributi per inserire informazioni relative alla sicurezza 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 sicurezza 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 sicurezza.

NotaNota

In .NET Framework versione 4 sono state apportate modifiche importanti al modello di sicurezza e alla terminologia relativa alla sicurezza di .NET Framework.Per ulteriori informazioni su tali modifiche, vedere Modifiche della sicurezza in .NET Framework 4.

Per utilizzare le chiamate di sicurezza 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 viene passata un'enumerazione SecurityAction per descrivere il tipo di operazione di sicurezza 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

Estensione di metadati mediante attributi

Sintassi di sicurezza

Sicurezza dall'accesso di codice

Metadati e componenti auto-descrittivi

Autorizzazioni di sicurezza