代码之家  ›  专栏  ›  技术社区  ›  Filip Ekberg

Web应用程序上的许可模块[关闭]

  •  2
  • Filip Ekberg  · 技术社区  · 15 年前

    假设您有一个网站,其中包含许多不同的模块,例如:

    • 会计(处理客户、发票等)
    • 注释和文档(创建和管理文档)
    • 还有很多…

    您如何限制访问 “模块” 如果一个客户没有适当的许可证?

    我经常看到组件 .lic 文件,如何生成其中一个?

    如果你使用这样的方法,它会影响性能吗?

    编辑

    我在想的另一件事是,如果您将所有模块与应用程序一起发送,并且只想显示您已授权的控件,那么您需要检查每个控件的有效性吗,或者您可以以某种方式提取这些信息吗?

    2 回复  |  直到 12 年前
        1
  •  1
  •   logicnp    15 年前

    一种方法是有一个位数组,其中每个标志对应于一个特定的模块或特性。生成许可证时,根据客户购买的模块设置位数组,然后使用RSA等算法对此位数组进行签名。然后,在软件中,验证签名并检索位数组以确定要激活的模块。

    看一看 CryptoLicensing 它支持这个场景——您可以在每个生成的许可证中指定多达2040个功能/模块。

        2
  •  5
  •   dna Dale Ragan    12 年前

    您可以使用现有的开源解决方案之一来生成和验证许可证文件,包括有关允许的模块/功能的信息:

    boths工具允许您将其他数据存储到许可证文件中--在您的情况下,是允许的模块。

    使用portable.licensing解决方案可以使用产品功能或其他许可证数据添加允许的模块:

    var license = License.New()  
        //... other options
        .WithProductFeatures(new Dictionary<string, string>  
                                  {  
                                      {"Accouting", "yes"},  
                                      {"Notes and Documents", "yes"}
                                  })  
        // ... other options
        .CreateAndSignWithPrivateKey(privateKey, passPhrase);
    

    要验证模块:

    if (license.ProductFeatures.Contains("Accouting"))
        // ...
    

    免责声明:我是 便携式。许可证 开源项目

    推荐文章