许可证管理器页面 ASP.NET Web 表单

Licence manager page ASP.NET Web Forms

我们有一个相当复杂的企业 ASP.NET Web 表单 2.0 应用程序。

我们需要将此应用程序部署到处于封闭 VPN 环境中的客户。

应用程序将部署到我们客户的实例(基本上一个实例等于 200 台或更多客户端 PC)。

我们需要创建许可证管理器页面,我们可以在其中为一个实例中的所有客户端配置一个许可证的持续时间。如果许可证过期,将向客户弹出他们不能再使用该应用程序的警告。

实现此目标的最佳方法是什么?

您希望每台服务器只有一个许可证,无论那里有多少客户端和用户。如果服务器上的应用程序许可证过期,则任何用户(管理控制台/许可证管理器除外)都无法从任何客户端访问它。

在这种情况下,您可以拥有一个数据库实体(或 XML 或任何其他符合您要求的文件)以加密形式存储许可证信息,例如许可证开始日期、到期日期、用户数、许可证类型、颁发者、颁发给等

根据您的应用程序类型和要求,可以检查这些凭据:

  1. 根据每个请求(可能会影响性能)或
  2. 客户每次登录(这似乎是更好的方法)或

在许可证验证时,如果许可证已过期,您可以将用户重定向到许可证页面。

您的许可证管理器应该只能通过单独的登录访问

只有不在服务器上部署代码才能实现此方案,即您只向客户端提供编译后的程序集。

更新

可以对许可证篡改应用多次验证,例如:

  1. 如果许可证代码字段为空,则必须将用户重定向到注册页面。
  2. 如果加密的许可证代码已被修改,则重定向到注册页面。