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

Actualización: noviembre 2007

Cada aplicación que tenga como destino Common Language Runtime debe interactuar con el sistema de seguridad del motor en tiempo de ejecución. Cuando se ejecuta una aplicación, el motor en tiempo de ejecución la evalúa automáticamente y le concede un conjunto de permisos. En función de los permisos que reciba la aplicación, se ejecuta correctamente o genera una excepción de seguridad. La configuración de seguridad local de un equipo concreto decide en última instancia los permisos que recibe el código. Dado que esta configuración puede variar de un equipo a otro, nunca se podrá saber con certeza si el código va a recibir los permisos suficientes para ejecutarse. Esto contrasta con el mundo de la programación no administrada, donde no es necesario preocuparse por los permisos que requiere el código para ejecutarse.

Cada programador debe estar familiarizado con los siguientes conceptos de seguridad de acceso a código para escribir aplicaciones eficaces que tengan como destino Common Language Runtime:

  • Escribir código con seguridad de tipos: para que el código pueda beneficiarse de la seguridad de acceso a código, es preciso utilizar un compilador que genere código con seguridad de tipos comprobable. Para obtener más información, vea Escribir código con seguridad de tipos comprobable.

  • Sintaxis imperativa y declarativa: la interacción con el sistema de seguridad del motor en tiempo de ejecución se realiza mediante llamadas de seguridad imperativas y declarativas. Las llamadas declarativas se realizan mediante atributos, mientras que las llamadas imperativas se realizan con nuevas instancias de clases del código. Algunas llamadas se pueden realizar sólo imperativamente, mientras que otras sólo se pueden realizar declarativamente. Algunas llamadas se pueden realizar de ambas maneras. Para obtener más información, vea Sintaxis de seguridad.

  • Solicitar permisos para el código: las solicitudes se aplican al ámbito del ensamblado, donde el código informa al motor en tiempo de ejecución sobre los permisos que requiere para ejecutarse o los que específicamente no desea. El motor en tiempo de ejecución evalúa las solicitudes de seguridad cuando el código se carga en memoria. Las solicitudes no influyen en el motor en tiempo de ejecución para que conceda más permisos de los que hubiese concedido si no se hubiese realizado la solicitud. Sin embargo, las solicitudes son lo que el código utiliza para informar al motor en tiempo de ejecución sobre los permisos que requiere para ejecutarse. Para obtener más información, vea Solicitar permisos.

  • Utilizar bibliotecas de clases seguras: las bibliotecas de clases utilizan la seguridad de acceso a código para especificar los permisos que requieren para que se obtenga acceso a ellas. Debe conocer los permisos necesarios para obtener acceso a cualquier biblioteca que utilice el código y realizar las solicitudes correspondientes en el código. Para obtener más información, vea Utilizar bibliotecas de clases seguras.

Vea también

Conceptos

Escribir código seguro comprobable

Sintaxis de seguridad

Solicitar permisos

Utilizar bibliotecas de clases seguras

Otros recursos

Seguridad de acceso a código