2

MSDN说:

隔离应用程序对于应用程序安全性也很重要。例如,您可以在单个浏览器进程中运行来自多个 Web 应用程序的控件,以使这些控件无法访问彼此的数据和资源。

这将如何实现?如果我在我的 WebForm 上使用来自程序集的控件作为 UI 的一部分,我将如何从单独的域加载它?

此外,这是否可能在 Windows 窗体中,在您的窗体上具有来自单独应用程序域中加载的程序集的 UI 控件?如果是这样,你会怎么做?

我问是因为我使用了许多 3rd 方 UI 控件库。我将如何以“安全”的方式使用这些,从与我的主应用程序不同的应用程序域托管?

4

1 回答 1

1

如果您进一步阅读,您可以看到您可以在进程中创建多个域并将程序集加载到其中或在其中执行程序集。

现在,根据您的要求,我认为您对这个概念有些误解。两个不同域中的程序集是完全分离的,它们不能相互访问,所以您想要做的是将 UI 控件加载到单独的域并在您的原始域中使用它是不可能的。

您写的引文讨论了诸如并发用户访问单个 asp.net 应用程序或单个 Internet Explorer 中显示多个网页的多个“选项卡”等场景。这些需要安全地分离,这可以通过为每个用户请求或选项卡创建一个全新的流程或通过创建单独的应用程序域来实现。appdomains 在这里提供的收益是更好的可扩展性/性能,因为为每个对 asp.net 应用程序的请求创建一个新进程的成本太高。

所以回答你的问题:如果你想使用 3rd 方控件并希望它们与你的主应用程序交互,你不能将它们加载到单独的域中,除非你可以让它们通过网络、远程处理、管道等与你的应用程序通信。


于 2011-04-13T22:39:03.300 回答