Compartir a través de


Realizar comprobaciones de seguridad declarativa

Actualización: noviembre 2007

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. PrincipalPermissionAttribute define la entidad de seguridad que el subproceso actual debe tener para invocar el 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

Conceptos

Comprobaciones de seguridad basada en funciones

Referencia

PrincipalPermission