【问题标题】:How can I run an exe or windows service in medium trust?如何以中等信任度运行 exe 或 Windows 服务?
【发布时间】:2011-11-22 15:23:49
【问题描述】:

我想在中等信任下运行 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 的哪个版本?另外,这是用于测试还是用于部署?如果是后者,您是出于纵深防御的原因尝试限制自己代码的权限,还是尝试限制他人代码的权限以防止代码潜在的恶意活动?
  • 限制 3rd 方代码的权限 - 理想情况下我想使用 Topshelf 或类似的东西来托管 3rd 方服务

标签: windows-services exe code-access-security medium-trust


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多