我想知道这是否本质上是可能的:

考虑一个云场景。我允许用户将他们的 .net 代码上传到我的服务器上。但是,为了管理服务器上的内容,我不能允许用户编写直接调用 HttpWebRequest.Create() 等方法的代码。

如果用户编写了这样的代码,则意味着他/她正在尝试联系另一个网络服务(例如)。我的目标是通过另一台服务器提供这些服务,但仍然让主服务器处理其他传入请求。

我想阻止对 HttpWebRequest.Create() 的调用。相反,我将为用户提供一些接口来进行此类调用。对于这个问题我能想到什么样的解决方案呢?

附:我更倾向于.net 2.0。如果您回答的是更高版本的交易,请具体说明

有帮助吗?

解决方案

看看代码访问安全(http://msdn.microsoft.com/en-us/library/930b76w0(VS.71).aspx 或者 http://www.codeproject.com/KB/security/UB_CAS_NET.aspx)

您可以创建一个新的受限 AppDomain,在其中执行您的客户代码。

编辑: 如果您想提供一种 API 来实现需要 HttpWebRequest 的方法,那么我建议创建一个服务(拥有所有权限),然后您的 API 调用该服务。在该服务中,您可以实施任何您想要的限制。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top