2011-11-22 37 views
1

我想在運行中信任的EXE文件和Windows服務,但所有我能找到的文獻表明使用如何在中等信任下運行exe或windows服務?

<system.web> 
    <trust level="Medium"/> 
</system.web> 

爲ASP.NET,所以我也試過,但使用代碼How do you check if you are running in Medium Trust environment in .NET?它似乎仍有充分的信任。什麼是正確的方法來做到這一點?

+0

.NET的哪個版本?另外,這是測試還是部署?如果是後者,你是否試圖限制你自己的代碼的權限以防禦深層原因,或者你是否試圖限制別人代碼的權限以防止代碼潛在的惡意活動? –

+0

限制第三方代碼的權限 - 理想情況下,我想使用Topshelf或類似的東西來承載第三方服務 – mcintyre321

回答

3

可用的方法取決於.NET版本。在.NET 4.0之前,CLR強制執行CAS策略,這使得限制任何程序集的權限成爲可能。但是,從.NET 4.0起,CLR不再應用CAS策略,除非通過任何給定應用程序的app.config文件中的NetFx40_LegacySecurityPolicy元素啓用它。儘管這種方法目前可用,但您可能需要記住,它可能在將來的.NET Framework版本中不受支持。

權限限制的新方式是通過限制除「裸」CLR之外的主機的權限。這就是ASP.NET所做的,這也是您的備用託管平臺所需要做的,以便正確實施。這種權限限制的最簡單機制是通過sandboxed appdomain。我對Topshelf不熟悉,他們的介紹文檔沒有說清楚他們是否支持這一點。但是,這可能是一個相對簡單的增強,因此可能值得請求該功能。

+0

謝謝,很好的答案。 – mcintyre321

相關問題