Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Esecuzione di controlli di sicurezza dichiarativi

Le richieste dichiarative di PrincipalPermission funzionano in modo analogo alle richieste dichiarative delle autorizzazioni di accesso al codice. Le pretese possono essere applicate a livello di classe nonché su singoli metodi, proprietà o eventi. Se una pretesa dichiarativa viene generata sia a livello di classe che a livello di membro, la pretesa dichiarativa generata a livello di membro avrà la precedenza (o sostituirà) sulla pretesa a livello di classe.

L'esempio di codice che segue illustra una versione modificata del metodo PrivateInfo utilizzato nell'esempio della sezione precedente. Questa versione utilizza la sicurezza dichiarativa. L'attributo PrincipalPermissionAttribute definisce l'oggetto Principal di cui il thread corrente deve disporre per richiamare il metodo. Passare semplicemente SecurityAction.Demand con il nome e il ruolo richiesti.

      [PrincipalPermissionAttribute(SecurityAction.Demand, Name = "MyUser", Role = "User")]
      public static void PrivateInfo()
      {   
         //Print secret data.
         Console.WriteLine("\n\nYou have access to the private data!");
      }

Questo metodo genera un'eccezione di sicurezza se il thread corrente non contiene il principale adatto. Se l'utente digita 1, verrà richiamato il metodo PrivateInfo e sulla console verrà visualizzato il messaggio riportato di seguito.

You have access to the private data!
Mostra: