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

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

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

  1. 核心
  2. 会计
  3. 人力资源
  4. 库存

我需要为每个区域申请许可。如果客户购买了会计模块,那么只有他才能访问会计功能。否则我必须显示一条错误消息。

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

那么我如何使用 Asp.Net Areas 的可移植许可呢? 许可证需要在何处/何时验证?

任何人都可以通过提供一些说明来帮助我实现我的要求吗? 非常感谢提供示例代码!

最佳答案

对于所有徘徊在同一件事上的人:

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

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

  1. 您对解决方案的性能有多关心?
  2. 您对刚刚破解 IL 的人有多关心?

如果您更关心性能,而不是人们很容易更改程序集并获得破解版本 - 您可以将许可证中的可用功能数据保存到某个缓存中并在以下位置访问它:

  • WebApi Controller 的每个方法
  • WebApi Controller 的基本 Controller (OnActionExecuting 是一个不错的选择)
  • 在 WebApi 过滤器中(here 是一个很好的例子)

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

关于c# - 使用 Portable.Licensing 许可 Asp.Net 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38823811/

相关文章:

javascript - jquery ajax 请求没有响应

asp.net - 应如何使用 CompiledRazorAssemblyPart 加载 Razor View ?

c# - 如何从 asp.net core web 应用程序向自己发出请求

post - “Method not found: ' System.Net.Http.HttpRequestMessage System.Web.Http.ApiController.get_Request()'.”

c# - 由于默认值约束,Code First 迁移失败

ASP.NET 传递错误消息

c# - 配置 MSBuild 以启动 PowerShell 并运行 Import-Module $(TargetFileName)

javascript - 显示用户是否通过身份验证的 View

c# - 使用 WPF 时如何将 Checked 属性状态保存到 Properties.Settings?

c# - 比较 Entity Framework 模型