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に要求します)、アセンブリがどこから実行されているか(ローカルマシン、インターネットなど...)に応じてゾーンを割り当てます。アセンブリのアクセス許可を減らすことを意図していたと推測していますが、2 つの証拠がある場合、特定のポリシー レベル内で合計される 2 つのコード グループもあります。

よろしくお願いしますPK

4

2 に答える 2

1

.NET Framework の基本書 (試験のためにまだ十分に覚えていません) によると、エビデンスはユーザー指定 (.NET 構成ツール) または開発者指定のいずれかです。したがって、このようにして、必要なゾーンを明示的に定義しています。

私は間違っているかもしれませんが、CLR がゾーンを自動的に割り当てることを認識していません。

于 2009-04-28T11:11:00.773 に答える
0

この ExecuteAssembly メソッドのオーバーロードは、新しい証拠を自動的に割り当てるのではなく、提供された証拠を使用することを期待しています。そうでなければ、ポイントは何ですか?

于 2009-04-28T11:18:26.653 に答える