代码之家  ›  专栏  ›  技术社区  ›  Mathias Lykkegaard Lorenzen

限制调用某些函数的其他方法?

  •  1
  • Mathias Lykkegaard Lorenzen  · 技术社区  · 6 年前

    我最近才知道 AppDomain 在.NET Core中没有完全支持,而且到目前为止,他们还没有实现完全支持的计划。

    我要做的是创建一个可以运行插件的程序,但是我不希望该插件能够访问某些程序集或名称空间(例如 System.IO )中。

    这个 way I used to solve this problem 由于缺少支持,.NET Core之前的版本将不再工作。

    有没有其他方法可以在.NET Core中实现相同的功能?

    更具体的例子

    假设我使用 Assembly.LoadFrom 从文件系统,其中包含一个插件方法,然后我调用。但我不希望插件能够擦除文件等。事实上,我只希望插件能够从特定程序集调用函数。

    1 回复  |  直到 6 年前
        1
  •  4
  •   Victor Procure sachin BR    6 年前

    基本上,他们希望你在开发环境中使用平台边界。

    沙箱

    为什么停产了?

    沙箱,即依赖于运行时或框架来约束托管应用程序可以访问哪些资源,被认为是.NETCARE的非目标。应用程序和组件也很难得到正确的,这就是为什么一般建议客户不要依赖它。它也使得实现更加复杂,并且经常负面影响不使用沙箱的应用程序的性能。因此,我们不提供.Net内核中的沙拳特征。

    我应该用什么代替?

    使用操作系统提供的安全边界,例如用于以最少权限集运行进程的用户帐户。

    https://blogs.msdn.microsoft.com/dotnet/2016/02/10/porting-to-net-core/