2009-04-28 20 views
5

Aşağıdaki kod parçasının amacı nedir ?:Montaj Kanıtı

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

CLR 'yi otomatik olarak bildiğim kadarıyla (Windows için sorar), topluluğun bulunduğu yerden bağlı olarak Bölge'yi atar makine, internet vb ...). Toplama izinlerinin azaltılmasının amaçlandığını tahmin ediyorum ama iki kanıtımız olduğunda, belirli bir politika düzeyinde toplanan olan iki kod grubumuz var.

Saygılarımızla PK

cevap

1

. Böylece, bu şekilde ihtiyacınız olan Bölgeyi açıkça tanımlarsınız.

Yanlış olabilsem de CLR'nin bölgeleri otomatik atama olduğunu bilmiyorum.

+0

CLR, otomatik olarak bölgeleri otomatik olarak atamaz, ardından dosyanın konumuna ve varsayılan güvenlik ilkesine göre bunları varsaymaz. Yani. yerel makinemde bir dosya çalıştırıyorsa, tam olarak güvenilir olduğu varsayılır. – BinaryMisfit

+1

Atamaz, Windows için Bölge bilgisi ister. – pkolodziej

+2

CLR, montaj için bölge kanıtını nasıl aldığına dair makaledir: http://blogs.msdn.com/shawnfa/archive/2006/05/12/596419.aspx – pkolodziej

0

ExecuteAssembly yönteminin bu aşırı yüklenmesinin, yerine otomatik olarak yeni kanıtlar atamak yerine sağlanan kanıtını kullanmasını beklerim. Aksi halde, nokta ne olurdu?