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.
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
Conceptos
Sintaxis de seguridad
Permisos de seguridad
Otros recursos
Extender metadatos mediante atributos
Seguridad de acceso a código
Metadatos y componentes autodescriptivos