2009-04-28 10 views
5

Co jest celem poniższego fragmentu kodu ?:Zgromadzenie Dowody

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

O ile wiem CLR automatycznie (Zwraca się do niego system Windows) przypisuje strefy w zależności od tego, gdzie zespół jest biegać od (maszyna lokalna, internet itd ...). Zgaduję, że miało to zmniejszyć uprawnienia do montażu, ale gdy mamy dwa dowody, mamy również dwie grupy kodów, które są zsumowane na danym poziomie polityki.

poważaniem PK

Odpowiedz

1

Według książki Framework Foundation (Nie byłem jeszcze dość zapamiętane go do egzaminu), Evidence jest albo określony użytkownik (.NET Configuration Tool) lub Twórca określony. W ten sposób wyraźnie określasz strefę, której potrzebujesz.

Nie jestem świadomy, że CLR automatycznie przypisuje strefy, chociaż mogę się mylić.

+0

Środowisko CLR nie przypisuje automatycznie stref jako takich, a raczej przyjmuje je na podstawie położenia pliku i domyślnej strategii bezpieczeństwa. To znaczy. jeśli uruchamiasz plik na moim komputerze lokalnym, zakłada się, że jest w pełni zaufany. – BinaryMisfit

+1

Nie przypisuje, ale prosi o informacje dotyczące strefy Windows. – pkolodziej

+2

Oto artykuł o tym, jak CLR otrzymuje dowody strefowe dla zespołu: http://blogs.msdn.com/shawnfa/archive/2006/05/12/596419.aspx – pkolodziej

0

Spodziewam się, że to przeciążenie metody ExecuteAssembly będzie korzystać z dostarczonego dowodu zamiast z automatycznego przydzielania nowych dowodów. W przeciwnym razie, o co w tym chodzi?

Powiązane problemy