Realizar comprobaciones de seguridad declarativa

Las demandas declarativas de permisos PrincipalPermission funcionan de la misma manera que las demandas declarativas de permisos de acceso a código. Las demandas se pueden colocar en el nivel de clase así como sobre eventos, propiedades y métodos individuales. Si una demanda declarativa se coloca en el nivel de clase y de miembro, la demanda declarativa sobre el miembro reemplaza la demanda en el nivel de clase.

El ejemplo de código siguiente muestra una versión modificada del método PrivateInfo a partir del ejemplo de la sección anterior. Esta versión utiliza seguridad declarativa. La clase PrincipalPermissionAttribute define el principal que el subproceso actual debe tener para llamar al método. Basta con pasar la clase SecurityAction.Demand con el nombre y la función que se requieren.

      [PrincipalPermissionAttribute(SecurityAction.Demand, Name = "MyUser", Role = "User")]
      public static void PrivateInfo()
      {   
         //Print secret data.
         Console.WriteLine("\n\nYou have access to the private data!");
      }
    Public Shared Sub _
    <PrincipalPermissionAttribute(SecurityAction.Demand, Name := "MyUser", Role := "User")> _
    PrivateInfo()
    
        'Print secret data.
        Console.WriteLine(ControlChars.CrLf + "You have access to the private data!")
    End Sub

Este método produce una excepción de seguridad si el subproceso actual no contiene el principal correcto. Si el usuario especifica 1, se llama al método PrivateInfo y se muestra el mensaje siguiente en la consola:

You have access to the private data!

Vea también

Referencia

PrincipalPermission

Conceptos

Comprobaciones de seguridad basada en funciones