Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以限制或限制可从DLL执行的C#代码的范围?_C#_.net_Security_Sandbox - Fatal编程技术网

是否可以限制或限制可从DLL执行的C#代码的范围?

是否可以限制或限制可从DLL执行的C#代码的范围?,c#,.net,security,sandbox,C#,.net,Security,Sandbox,我正在做一个项目,我将允许用户编写一些代码,这些代码将被编译、加载和运行,这些代码将允许用户控制应用程序的某些部分。然而,这只允许他们在running应用程序中插入C#,因此我希望有一些限制 有没有什么方法可以让你运行一段代码,但让我们说,阻止任何System.Threadinguse或任何System.IOuse 我知道通读代码并删除任何引用都是可能的,但我相信会有办法解决这个问题。在写这篇文章之前,我至少想确认一下没有一种更简单、更有效的方法 我用谷歌搜索过,但不是我找错了地方,就是问错了问

我正在做一个项目,我将允许用户编写一些代码,这些代码将被编译、加载和运行,这些代码将允许用户控制应用程序的某些部分。然而,这只允许他们在running应用程序中插入C#,因此我希望有一些限制

有没有什么方法可以让你运行一段代码,但让我们说,阻止任何
System.Threading
use或任何
System.IO
use

我知道通读代码并删除任何引用都是可能的,但我相信会有办法解决这个问题。在写这篇文章之前,我至少想确认一下没有一种更简单、更有效的方法

我用谷歌搜索过,但不是我找错了地方,就是问错了问题。然而,我知道你们这些人都是天才。有什么想法吗


谢谢,任何回答都将不胜感激

与其浏览代码并删除所有单个引用,为什么不限制项目引用?此外,您还可以使用.NET framework配置管理单元,根据各种选项管理对GAC、域应用程序等的访问,从而利用系统上的.NET权限。(启动>运行>mscorcfg.msc来启动它)我不知道更新的4.0选项是什么来取代该配置实用程序。编辑:进一步来说,您可以使用服务用户帐户运行输入的代码,并通过此实用程序限制该用户对代码的访问。

可能就是您想要的。

“沙箱”是一个常见的艺术术语,用于描述您试图做的事情。这可能会对你的谷歌搜索有所帮助。沙盒/CAS是一个不错的选择。即使您删除了所有引用,也可能存在不安全的情况,例如,
环境。退出可能不需要,但在沙箱/CAS的mscorlib.dllLooking中,我认为这是一种方法。谢谢大家!不幸的是,加载程序集并使用类对象的主应用程序需要完全权限。我想我可能能够找到一种方法,使用AppDomains安全地运行它。thanksAFAICT您不能使用代码访问安全性来限制新线程的创建,以避免外接程序创建的线程中出现未处理的异常,即使在新AppDomain中“隔离”时也是如此。