Seguridad informatica
Permisos
La seguridad de .NET Framework permite la utilización de recursos protegidos en el código sólo si éste dispone de "permiso" para ello. Para expresarlo de otra forma, .NET Framework usa los conceptos de permisos, que representan el derecho del código desarrollado por un programador a obtener acceso arecursos protegidos. El código solicita los permisos que necesita, y la directiva de seguridad aplicada por .NET Framework determina qué permisos se conceden efectivamente al código.
.NET Framework proporciona al código diferentes clases de permisos de acceso, cada una de las cuales encapsula la capacidad de tener acceso a un recurso particular. Se pueden utilizar estos permisos para indicar a .NETFramework la autorización que requiere el código, así como aquello que está autorizado a hacer cualquier tipo de código que llame a nuestro código. La directiva también utiliza estos objetos para determinar qué permisos conceder al código.
Directiva
La aplicación de una directiva de seguridad es lo que convierte en seguro el código administrado de .NET Framework. Cada ensamblado que secarga está sujeto a una directiva de seguridad que concede permisos de código basados en la confianza, estando ésta basada en las pruebas aportadas por el código. Vea la documentación de .NET Framework en la lista Información adicional para obtener más información sobre cómo administrar la directiva de seguridad.
Permisos de seguridad en C#
Hay dos maneras de solicitar permisos de seguridad enC#:
Imperativamente: mediante llamadas a clases de permisos de .NET Framework
Declarativamente: mediante atributos de permisos de seguridad
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 indicarel 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 losllamadores o para reemplazar el comportamiento de seguridad predeterminado.
Ejemplo
[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.
}
}
Seguridad imperativa
La sintaxis de seguridad imperativa emite una llamada de seguridad mediante la creación de una nueva instancia del objeto de permiso que se desea invocar. La sintaxis imperativa se puede utilizar para realizar peticiones y reemplazos, pero no para realizar solicitudes.
La sintaxis imperativa se puedeutilizar para realizar peticiones y reemplazos, pero no para realizar solicitudes. Puede utilizar la sintaxis imperativa para las peticiones y los reemplazos en lugar de la sintaxis declarativa cuando la información necesaria para inicializar el estado de permiso sólo se revela en tiempo de ejecución. Por ejemplo, si desea garantizar que los llamadores tienen permiso para leer un archivodeterminado pero no conoce el nombre de dicho archivo hasta el tiempo de ejecución, utilice una petición imperativa. También puede optar por utilizar comprobaciones imperativas en lugar de comprobaciones declarativas cuando necesita determinar en tiempo de ejecución si una condición se mantiene y, basándose en el resultado de la comprobación, realizar (o no) una petición de seguridad.
Ejemplo
public...
Regístrate para leer el documento completo.