2012-06-07 33 views
6

Tengo un ensamblado .net con un método que no es verificable.C# código no verificable sin permiso no administrado

Estoy intentando cargar este ensamblaje en un appdomain de la zona de pruebas.

Si cargo con la verificación de omisión, pero no con Unmanaged, obtengo una excepción de verificación. De este modo:

new SecurityPermission(SecurityPermissionFlag.Execution | 
         SecurityPermissionFlag.SkipVerification); 

Si se me carga con permiso no administrado funciona, pero entonces el dominio de aplicación no será suficiente "espacio aislado".

new SecurityPermission(SecurityPermissionFlag.Execution | 
         SecurityPermissionFlag.SkipVerification | 
         SecurityPermissionFlag.UnmanagedCode); 

También - Me postulo .Net 4, y para hacer lo anterior para trabajar tuve que cambiar a transperancy nivel del modelo 1, así:

[assembly:SecurityRules(SecurityRuleSet.Level1)] 

Por lo tanto, mi pregunta es:

  1. ¿Hay alguna forma de ejecutar código sin verificar sin el permiso UnmangedCode?
  2. ¿Hay alguna manera de que el trabajo anterior funcione con el conjunto de reglas de seguridad de Level2?

¡Gracias!

+0

Una aplicación está en modo de espacio aislado o no. Entonces, ¿qué significa 'no será suficiente sandboxed' significa exactamente? Parece que necesita obtener un ensamblado que sea verificable en lugar de intentar crear una solución alternativa. –

+0

En este entorno limitado, debo proteger al usuario de sí mismo y no contra una posible amenaza. Es por eso que no estoy preocupado por el código no verificable. Pero estoy preocupado por el código no administrado. De todos modos, no puedo hacer que sea verificable debido a algunos frameworks .net que uso. – ravyoli

Respuesta

1

Existe una forma de ejecutar el código no verificado sin el permiso UnamangedCode .

Incluso si hubiera existido, habría renunciado a cualquier seguridad en ese momento. El código no verificable tiene la misma potencia que el código no administrado. Le permite romper el sistema de tipo, por ejemplo.

No tiene sentido tener SkipVerification y no UnmanagedCode (o al revés). Los dos son equivalentes y considero que es un error en el marco que ambos existen.

Cuestiones relacionadas