我想在Medium Trust中运行exes和Windows Services,但我能找到的所有文献建议使用
<system.web>
<trust level="Medium"/>
</system.web>
对于ASP.NET,所以我尝试过,但使用How do you check if you are running in Medium Trust environment in .NET?中的代码,它似乎仍然完全信任。这样做的正确方法是什么?
答案 0 :(得分:3)
可用的方法取决于.NET版本。在.NET 4.0之前,CLR强制执行CAS策略,这可以限制任何程序集的权限。但是,从.NET 4.0开始,CLR不再应用CAS策略,除非您通过任何给定应用程序的app.config文件中的NetFx40_LegacySecurityPolicy元素启用它。虽然目前可以使用此方法,但您可能需要记住,在将来的.NET Framework版本中可能不支持它。
新权限限制是通过“裸”CLR以外的主机限制权限。这就是ASP.NET所做的事情,这也是您的备用托管平台需要做的事情,以便正确实现这一点。这种权限限制的最简单机制是通过sandboxed appdomain。我对Topshelf不熟悉,他们的介绍文档并不清楚他们是否支持这一点。但是,它可能是一个相对简单的增强,因此可能值得请求该功能。