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