2011-11-22 66 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

相关问题