我们在 asp.net 4.0 中实现了一个 web 应用程序,客户也需要我们给他们源代码,以便他们可以自己进行应用程序的维护和有限的改进,但我们需要确保他们不能更改应用程序和销售对其他客户,有什么解决方案?
问问题
232 次
1 回答
1
如果您向他们提供完整的源代码,那么阻止他们重新分发它(作为源代码或作为编译的解决方案)的唯一方法是将其作为他们与您之间的许可协议的条件。在代码中,没有办法通过简单地删除强制执行它的代码来强制执行他们无法绕过的。
如果您可以将一些组件作为已编译的程序集提供给它们(例如;它们不需要更改的组件,例如数据访问层或某些 UI 控件库),您可以在执行以下操作之一的库中放置某种形式的许可证检查以下:
- 确认
web.config
文件中的许可证密钥与其运行的服务器的 IP 地址相匹配(考虑对进入“私有”IP 地址范围(例如 127.0.0.0 和 192.168.0.0 等)的请求执行一揽子“允许” ,.. 允许他们的开发人员执行测试)。 - “Phones Home”到您提供的许可 Web 服务,以检查运行代码的服务器是否已获得授权(确保他们知道这将发生,以便他们的服务器/防火墙可以配置为允许此检查)。您可能希望通过 SSL 执行此操作,以使其更难绕过。
如果您执行上述两项之一,请记住,这不会阻止他们反编译程序集并删除您放入的检查。在这种情况下,您可能需要考虑混淆编译的程序集。
于 2012-04-05T07:23:20.923 回答