5

以下代码的目的是什么?:

object[] hostEvidence = {new Zone(SecurityZone.Internet)}; 
Evidence internetEvidence = new Evidence(hostEvidence, null);
AppDomain myDomain = AppDomain.CreateDomain("MyDomain");
myDomain.ExecuteAssembly("SecondAssembly.exe", internetEvidence);

据我所知,CLR自动(它要求 Windows)根据程序集的运行位置(本地机器、互联网等)分配区域。我猜这是为了减少程序集的权限,但是当我们有两个证据时,我们也有两个代码组,它们在给定的策略级别内求和。

亲切的问候 PK

4

2 回答 2

1

根据 .NET Framework 基础书籍(我还没有完全记住它以备考试),证据是用户指定的(.NET 配置工具)或开发人员指定的。因此,通过这种方式,您可以明确定义所需的区域。

尽管我可能错了,但我不知道 CLR 会自动分配区域。

于 2009-04-28T11:11:00.773 回答
0

我希望 ExecuteAssembly 方法的这种重载使用提供的证据,而不是自动分配新的证据。否则,有什么意义呢?

于 2009-04-28T11:18:26.653 回答