2010-12-15 40 views
5

API'mda üçüncü taraf bir .NET derlemesi çalıştırmak istiyorum. Kendi yöntemlerini ve nesnelerini istediği gibi çağırmasına izin vermek istiyorum, ancak API'mın açıkça vermediği herhangi bir şeye erişimini reddediyorum. Özellikle, API'm bir nesneyi üçüncü şahıs koduna IMyObject olarak geçirirse, bu nesneyi yansıtmak için yansımayı veya bu nesneyi yükseltmek için herhangi bir yöntem kullanmasını istemiyorum, yani arabirimi uygulayan MyObject.Bir .NET derlemesinden yansımayı devre dışı bırakmak mümkün mü?

Bu üçüncü taraf aksamında yansımayı kullanma yeteneğini reddetmenin bir yolu var mı? Her şeyin kontrolünü elime aldım, bu yüzden insanları topluluğumun kaynaşmasını engellemeye gerek yok, sadece çalışma zamanında kötüye kullanıyorum.

cevap

4

Aradığınızı sandbox'ta bir derleme çalıştırıyor. Bu, CAS (Code Access Security) in .Net adresinde sağlanabilir.

İşte nasıl çalışıyor. Bir AppDomain oluşturun, ona sınırlı izinler atayın. Örneğin, bir UI'yi görüntülemenize izin verirsiniz, ancak Dosya Sistemi veya Yansıma'yı kullanmanıza izin vermezsiniz. Daha sonra bir montajı ona yükler ve çalıştırmasına izin verirsiniz.

.Net 4.0 tamamen yeni bir güvenlik modeli sunuyor. Ama bunun hakkında pek bir şey bilmiyorum. İşte

başlangıç ​​için bir şeydir:

Discover Techniques for Safely Hosting Untrusted Add-Ins with the .NET Framework 2.0

0

Arayan 'Tam Güvende' çalışıyorsa, yapılabilecek bir şey yoktur. Her zaman meclise tam erişime sahip olacak.

En iyisi montajı gizlemek. Bu, yeniden mühendisliğe geçmek için meclisi biraz daha zorlaştıracak.

+0

Maalesef beni yanlış anladın. Ben arayan kişiyim ve başka birinin meclisini arıyorum. – Clueless

İlgili konular