我想知道这本身是否可行:
想想云场景。我允许用户将他们的.net代码上传到我的服务器上。但是,为了管理我的服务器上的东西,我不能允许用户编写直接调用HttpWebRequest.Create()等方法的代码。
如果用户编写了这样的代码,则意味着他/她正试图联系另一个Web服务(例如)。我的目标是通过另一台服务器提供这些服务,但仍然让主服务器处理其他传入请求。
我想阻止对HttpWebRequest.Create()的调用。相反,我会为用户提供一些接口来进行此类调用。我能为这个问题想到什么样的解决方案?
PS:我更倾向于.net 2.0。如果您回答更高版本的交易,请具体说明
答案 0 :(得分:1)
查看代码访问安全性(http://msdn.microsoft.com/en-us/library/930b76w0(VS.71).aspx或http://www.codeproject.com/KB/security/UB_CAS_NET.aspx)
您可以创建一个新的受限AppDomain来执行客户代码。
编辑:如果您想提供一种实现需要HttpWebRequest的方法的API,那么我建议创建一个服务(拥有所有权利),并且您的API调用该服务。在该服务中,您可以实施任何您想要的限制。