【问题标题】:How can Application Domains be used to host 3rd party assemblies that provide UI controls in a Web or Windows app?应用程序域如何用于托管在 Web 或 Windows 应用程序中提供 UI 控件的第 3 方程序集?
【发布时间】:2011-08-04 01:18:47
【问题描述】:

MSDN 说:

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

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

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

我问是因为我使用了许多第 3 方 UI 控件库。我如何以“安全”的方式使用它们,托管在与我的主应用程序不同的应用程序域中?

【问题讨论】:

    标签: c# .net applicationdomain


    【解决方案1】:

    如果您阅读further,您可以看到您可以在您的流程中使用create multiple domains,并在其中使用Load 程序集或在其中使用Execute 程序集。

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

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

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


    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-24
      • 2017-07-17
      • 2016-07-10
      • 1970-01-01
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多