Seguridad declarativa

La sintaxis de seguridad declarativa utiliza atributos para colocar la información de seguridad en los metadatos del código. Los atributos se pueden colocar en el nivel de ensamblado, nivel de clase o nivel de miembro para indicar el tipo de solicitud, petición o reemplazo que se desea utilizar. Las solicitudes se utilizan en aplicaciones que tienen como destino Common Language Runtime para informar al sistema de seguridad del motor en tiempo de ejecución sobre los permisos que la aplicación necesita o no desea. Las peticiones y los reemplazos se utilizan en las bibliotecas para ayudar a proteger los recursos ante los llamadores o para reemplazar el comportamiento de seguridad predeterminado.

Nota

En .NET Framework 4, se han realizado cambios importantes en el modelo de seguridad y la terminología de .NET Framework.Para obtener más información sobre estos cambios, vea Cambios de seguridad en .NET Framework.

Con el fin de utilizar las llamadas de seguridad declarativas, debe inicializar los datos de estado del objeto de permiso de manera que represente la forma concreta del permiso que necesita. Cada permiso integrado tiene un atributo al que se pasa una enumeración SecurityAction para describir el tipo de operación de seguridad que se desea realizar. Sin embargo, los permisos también aceptan parámetros propios que son exclusivos. Para obtener una descripción completa de los parámetros específicos de los permisos, vea la sección en la que se describen los permisos integrados.

En el siguiente fragmento de código se muestra la sintaxis declarativa para solicitar que los llamadores del código tengan un permiso personalizado denominado MyPermission. Este permiso es un permiso personalizado hipotético y no existe en .NET Framework. En este ejemplo, la llamada declarativa se coloca directamente delante de la definición de la clase, con lo que se especifica que este permiso se aplica al nivel de clase. Se pasa al atributo una estructura SecurityAction.Demand para especificar que los llamadores deben tener este permiso para poder ejecutarse.

<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.
   }
}

Vea también

Referencia

SecurityAction

Conceptos

Conceptos básicos sobre la seguridad de acceso del código

Permisos de seguridad

Otros recursos

Extender metadatos mediante atributos

Seguridad de acceso del código

Metadatos y componentes autodescriptivos