Restringir el uso de espacios de nombres en MS Script Engine

.NET Framework tiene excelentes características para admitir la compilación de código en tiempo de ejecución y su ejecución, para lograr algunos tipos de funcionalidades de scripting. Ya hay algunos motores de secuencias de comandos disponibles en CodeProject, y Microsoft también tiene su propia biblioteca.

Estoy trabajando en un software de automatización web, quiero incluir el motor de secuencias de comandos de Microsoft en la aplicación.

El problema es que los motores de secuencias de comandos permiten Usar todo el espacio de nombres, en el ensamblado al que se hace referencia, y quiero restringir el uso a unos pocos espacios de nombres seleccionados.

using System; // allowed.
using System.Linq; // allowed.
using System.Reflection; // restrict.

Cómo restringir el uso de espacios de nombres, en los scripts.

preguntado el 27 de agosto de 11 a las 15:08

¿Puede acceder al código que se va a compilar? (Me refiero a la cadena que representa el código) -

Entonces, ¿qué motor planeas usar? La solución puede depender de eso. -

¿Quiere restringir el uso de espacios de nombres O de DLL (como System.dll)? el primero casi no se puede lograr si el espacio de nombres "prohibido" está en la misma DLL que un espacio de nombres "permitido" ... O está tratando de hacer esto como una especie de medida de seguridad (caja de arena ...)? -

1 Respuestas

Restringir los espacios de nombres por nombre no logra mucho, ya que la extensión solo puede incluir una copia de la clase que no le gusta en su propio ensamblado, pero simplemente se le cambia el nombre.

Parece que lo que realmente quieres es un límite de seguridad. Coloque la extensión en un AppDomain que no sea de confianza.

Respondido el 03 de Septiembre de 11 a las 18:09

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.