.net 4.0 - play - ¿Cómo puedo usar CAS en.NET 4 para bloquear mis extensiones MEF?
el administrador ha bloqueado la extensión (1)
Tengo una aplicación en .NET 4 que usa MEF para la extensibilidad. Mi aplicación principal tiene tres conjuntos: Host
, Application
y Contracts
.
Host
es el ejecutable "boot-strapping" que crea el contenedor y hace la composición.
Application
contiene la lógica de mi aplicación y más puntos de extensión para terceros.
Contracts
contiene las interfaces (y algunas clases de ayuda) que se usan en los puntos de extensión.
Por lo tanto, alguien que desarrolle una aplicación de terceros debe incluir una referencia a los Contracts
, pero no a la Application
.
Estoy pensando que mi modelo de seguridad debería verse así:
-
Host
y laApplication
deberían ser SecurityCritical -
Contracts
deben ser SecuritySafeCritical - Todas las extensiones de terceros deben ser SecurityTransparent
Creo que 1. se cumplirá por defecto. Sé que puedo implementar 2. con un atributo de ensamblaje. La pregunta es, ¿cómo hago cumplir la regla 3.? ¿El sistema operativo hace esto automáticamente al marcar todas las extensiones descargadas como no confiables? ¿Es posible que un ensamble de extensión descargado sea completamente confiable?
Si su aplicación se ejecuta con total confianza, de manera predeterminada sus extensiones se ejecutarán con plena confianza y podrán hacer lo que quieran. No importará qué atributos de seguridad tienen. Para limitar lo que pueden hacer las extensiones, debe crear un dominio de aplicación de zona de pruebas. Usted configuraría su Host
y su Application
como totalmente confiables en ese AppDomain y el resto del código solo tendría los permisos que usted le otorgue.
Aquí hay un artículo de MSDN sobre este tema: Cómo ejecutar código parcialmente confiable en un Sandbox