1

我想在中等信任下运行 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?中的代码?它似乎仍然完全信任。这样做的正确方法是什么?

4

1 回答 1

3

可用的方法取决于 .NET 版本。在 .NET 4.0 之前,CLR 强制执行 CAS 策略,这使得限制任何程序集的权限成为可能。但是,从 .NET 4.0 开始,CLR 不再应用 CAS 策略,除非您通过任何给定应用程序的 app.config 文件中的NetFx40_LegacySecurityPolicy元素启用它。虽然此方法当前可用,但您可能需要记住,未来的 .NET Framework 版本可能不支持它。

新的权限限制样式是通过除“裸”CLR 之外的主机来限制权限。这就是 ASP.NET 所做的,也是您的备用托管平台也需要做的,以便正确实现这一点。这种权限限制的最简单机制是通过沙盒应用程序域。我不熟悉 Topshelf,他们的介绍文档并不清楚他们是否支持这一点。但是,它可能是一个相对简单的增强功能,因此可能值得请求该功能。

于 2011-11-23T13:36:41.813 回答