1

这是一个示例问题来说明我的观点。我不是在寻找解决这个问题的方法,而是寻找它背后的总体思路。

可以说我有一个项目可以让人们加载动态程序集——这个想法是“插件”。假设它在 Web 服务器上运行。它们继承自抽象插件类并定义了一些方法......但其中一个是这样做的......

public class SomePlugin : PluginBaseClass {
    //Some method that is supposed to update the 
    //the plugin information
    public virtual void Update() {
        HttpContext.Current.Response.Redirect("http://new-website.com");
    }
}

我不想让动态程序集访问类似的东西——但既然它是静态的,你能做什么?

我不确定你是如何锁定组件的,但在我看来,你不可能覆盖所有的基地。您仍然希望他们能够创建类并访问某些内容,但不能访问其他内容。

有什么建议可以保护 .NET 中的静态信息免受动态程序集的影响吗?

4

1 回答 1

1

答案取决于你的插件应该被允许做什么。CAS 可能是一个解决方案,但我不是很擅长,所以我不能给你一个普遍的例子。另一种选择可能是在他们自己的应用程序域中加载插件。不同应用程序域中的实例不应访问您的 HttpContext.Current。

于 2009-07-31T19:36:40.863 回答