使用Portable.Licensing许可Asp.Net应用程序

时间:2016-08-08 07:48:34

标签: c# asp.net asp.net-web-api licensing

我需要使用Portable.Licensing保护Asp.Net Web Api 2.2应用程序。 我通过创建多个Asp.Net Areas来组织应用程序。 例如:

  1. 核心
  2. 会计
  3. 人力资源
  4. 广告
  5. 我需要许可每个区域。如果客户购买了会计模块,那么只有他应该能够访问会计功能。否则我必须显示错误信息。

    而且我想生成一个不同的机器密钥来保护软件免受盗版。

    那么如何在Asp.Net领域使用便携式许可? 许可证需要在何时/何时进行验证?

    有人可以通过提供一些指示来帮助我达到我的要求吗? 提供示例代码非常感谢!

1 个答案:

答案 0 :(得分:3)

对于每个人都在徘徊同样的事情:

嗯,基本上,如何在您的应用程序中实现许可 - 这取决于!没有银弹,一如既往。

我花了半天时间研究Portable.Licensing,这就是我的想法: 在Portable.Licensing中,您可以在流畅的api中使用“WithProductFeatures”方法将自定义数据添加到许可证中,而您的区域就是它 - 产品功能。但是在哪里插入检查 - 取决于多少因素:

  1. 您对解决方案性能的关注程度是多少?
  2. 你只关心破解IL的人有多少?
  3. 如果您更关心性能,那么关于人们轻松更改程序集并获得破解版本 - 您可以将可用功能数据从许可证保存到某个缓存并访问它:

    • WebApi控制器的每个方法
    • WebApi控制器的基本控制器(OnActionExecuting是一个很好的候选者)
    • 在Filter for WebApi中(here是一个很好的例子)

    如果你考虑更加努力地保护你的代码 - 在这些地方传播许可数据检查调用,并使用Fody添加它们(我只是计划实现它,所以没有代码示例 - 只是库引用here ) - 不要让海盗的生活像改变1的方法一样容易:)