我需要制作“沙盒”来运行脚本和应用程序(PHP、Perl、exe 文件、Ruby 等)。但是解释器需要可以运行,并且只有一个文件夹可以访问以进行更改。此外,允许在硬盘驱动器上使用配额启动应用程序也很棒。在这种情况下我需要使用什么?
我需要 C# 中的解决方案
您可以设置 windows 安全性以允许此操作,选择您希望用户访问的文件夹并设置其权限(右键单击、属性、安全性)。这种方法的问题是,如果您不希望用户使用它们(即每个人和用户访问),您需要找到所有其他文件夹并撤销对它们的访问。
或者看看你需要的WinJail包。(Windows 的 CHROOT/JAIL 实施)。
您可能需要创建某种虚拟驱动器。看看这个 创建虚拟硬盘驱动器 和一个 csharp 库来玩虚拟驱动器 http://dokan-dev.net/en/ 希望这有帮助
您可以在所有文件操作上设置文件系统过滤器并以这种方式控制它们,但如此宽的过滤器会显着减慢操作,尤其是在用户模式下(通过回调)进行检查时。您可以测试我们的CallbackFilter产品,它可以让您在 C# 中执行上述操作,但要为速度慢做好准备。