【问题标题】:how do you suppress a direct call to a managed method?如何抑制对托管方法的直接调用?
【发布时间】:2010-01-18 11:31:33
【问题描述】:

我想知道这是否可能:

想想云场景。我允许用户将他们的 .net 代码上传到我的服务器上。但是,为了管理我的服务器上的东西,我不能允许用户编写直接调用诸如 HttpWebRequest.Create() 之类的方法的代码。

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

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

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

【问题讨论】:

    标签: .net methods call managed-code suppress


    【解决方案1】:

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

    您可以创建一个新的受限 AppDomain 来执行您的客户代码。

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

    【讨论】:

    • 如果我暴露了一个调用 HttpWebRequest.Create() 的接口怎么办?我实际上希望它执行...
    猜你喜欢
    • 2015-07-27
    • 2011-02-07
    • 2013-03-24
    • 2012-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多