【问题标题】:How to restrict .Net Assembly to Run on Particular Machines如何限制 .Net 程序集在特定机器上运行
【发布时间】:2009-05-16 00:10:50
【问题描述】:

我们有一个服务器应用程序,我们希望限制非用户从其他机器触发它,甚至通过双击任何共享来触发它。

但是,开发人员应该很容易在他们的盒子上运行它。

执行此政策的各种方法是什么?

【问题讨论】:

    标签: .net policy


    【解决方案1】:

    一个想法:可以使用需要存在才能运行的注册表项。

    另一个:可能需要在密钥库中安装 X509 证书才能运行

    另一个:使用 System.Security.Permissions 并将操作限制为一组用户或一个组。

    等等

    【讨论】:

      【解决方案2】:

      有几种方法可以控制程序集的访问。

      我们基于许可保护我们的程序集,因此只有拥有许可的工作站才能运行程序集。

      我们允许开发人员在未选中的情况下运行调试版本。我们当然会严格控制调试版本。如有必要,您可以在调试版本中进行额外检查以提高安全性。或者向开发者颁发许可证。

      对于我们的调试版本,我们在包含在“#IF DEBUG”中的调试代码中添加了一个许可证,以确保它不会被编译到发布版本中。

      我并不是说这是最好的方法,但这是我们使用的方法。

      【讨论】:

      • 我喜欢#IF DEBUG 路由,这就是我所做的。此外,如果 OP 还没有正式的构建过程,这可能是他们实施的正确动机。
      【解决方案3】:

      我想你正在寻找一个简单的故障保护,而不是一个气密的访问控制......

      将机器名称放入配置文件中,并在应用程序启动时将其与机器名称进行比较。这样您就不会在其他任何地方错误地运行它,并且在开发或移动应用程序时很容易更改。

      【讨论】:

        猜你喜欢
        • 2014-05-18
        • 2013-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-27
        • 2020-05-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多