我想在中等信任下运行 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?中的代码?它似乎仍然完全信任。这样做的正确方法是什么?
我想在中等信任下运行 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?中的代码?它似乎仍然完全信任。这样做的正确方法是什么?
可用的方法取决于 .NET 版本。在 .NET 4.0 之前,CLR 强制执行 CAS 策略,这使得限制任何程序集的权限成为可能。但是,从 .NET 4.0 开始,CLR 不再应用 CAS 策略,除非您通过任何给定应用程序的 app.config 文件中的NetFx40_LegacySecurityPolicy元素启用它。虽然此方法当前可用,但您可能需要记住,未来的 .NET Framework 版本可能不支持它。
新的权限限制样式是通过除“裸”CLR 之外的主机来限制权限。这就是 ASP.NET 所做的,也是您的备用托管平台也需要做的,以便正确实现这一点。这种权限限制的最简单机制是通过沙盒应用程序域。我不熟悉 Topshelf,他们的介绍文档并不清楚他们是否支持这一点。但是,它可能是一个相对简单的增强功能,因此可能值得请求该功能。