以下代码的目的是什么?:
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
答案 0 :(得分:1)
根据.NET Framework基础书(我还没有为考试记住它),Evidence可以是用户指定的(.NET配置工具)或指定的Developer。因此,通过这种方式,您可以明确定义所需的区域。
虽然我可能错了,但我不知道CLR会自动分配区域。
答案 1 :(得分:0)
我希望ExecuteAssembly方法的这个重载使用提供的证据而不是自动分配新的证据。否则,重点是什么?