我需要允许我的用户执行他们在我的服务器上提供的.NET代码。我知道安全是一个大问题,但必须这样做。
目前,我在一个有限的Windows帐户下运行我的用户代码。但是,我担心.NET框架提供了许多类,如果被恶意使用,可能会损害服务器——反射命名空间下的类是一个例子,CodeDom是另一个问题。
我希望有一种方法可以创建一个"轻量级虚拟环境",它可以运行.NET代码,但是完全隔离的。有点像虚拟PC,但要轻得多——唯一的功能是用户可以进行计算,并可能调用第三方网络服务。
市场上是否有为.NET应用程序提供隔离环境的产品?
谢谢。
.NET内置了安全功能,可以完全执行您想要执行的操作。在不知道他们的.NET应用程序是如何启动的情况下,我无法确定它是否会对您有所帮助,但如果您控制应用程序的启动,则可以将安全上下文应用于他们的AppDomain,并限制他们可以访问的内容。根据你在原始帖子中所说的,如果你屏蔽了除WebPermission之外的几乎所有内容(你甚至可以将其限制在特定地址),那么在你的系统上运行应该是安全的。