这个示例问题说明了我的观点。我不是在寻找这个问题的解决方案,而是寻找它背后的一般理念。
让我们说我有一个让人们加载动态组件的项目 - 这个想法是“插件”。让我们说它在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中的静态信息的任何建议吗?
答案 0 :(得分:1)
答案取决于你的插件应该做什么。 CAS可能是一个解决方案,但我不是很擅长,所以我不能给你一个一般的例子。另一个选择可能是在自己的应用程序域中加载插件。不同应用程序域中的实例不应该有权访问您的HttpContext.Current。