Свидетельство Ассамблеи - PullRequest
5 голосов
/ 28 апреля 2009

Для чего нужен следующий фрагмент кода:

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

Ответы [ 2 ]

1 голос
/ 28 апреля 2009

Согласно фундаментальной книге .NET Framework (я еще не совсем запомнил ее для экзамена), Evidence указывается либо пользователем (.NET Configuration Tool), либо разработчиком. Таким образом, вы явно определяете нужную вам зону.

Я не знаю, как CLR автоматически назначает зоны, хотя могу ошибаться.

0 голосов
/ 28 апреля 2009

Я ожидаю, что эта перегрузка метода ExecuteAssembly использует предоставленное свидетельство вместо , автоматически присваивающего новое свидетельство. Иначе какой смысл?

...