应用程序许可证

8
使用mysql、c#.net和JavaScript
我有一个Web应用程序,想要为我的应用程序创建用户限制,这意味着我必须为用户使用一些许可证...
例如,客户需要3个用户的应用程序,那么应用程序将为3个用户工作,如果客户需要将用户从3个扩展到10个,则我必须提供10个用户的许可证...
如何为应用程序创建许可证?我必须使用RSA算法生成密钥吗?
可以有人提供一些想法或示例代码吗?
需要帮助

7
为什么需要注册码呢?这是一个网络应用程序,为那些没有付费的人禁用功能。注册码的主要作用是防止别人复制你的程序,而在网络上这并不是个问题...(话虽如此,你是否暴露了API,需要授权许可呢?) - Kobi
@Kobi:我认为所提出的问题是:“如何?”。加密可以成为解决方案的一个有效组成部分。 - kbrimington
“用户限制”是什么意思?您是指同时只允许x个有效用户登录吗?还是要限制特定用户的登录次数? - VinayC
2个回答

5
在许可证密钥和许可协议之间存在很大的差异。许可证密钥用于使软件更难复制,但由于您正在部署Web应用程序,这对您来说不是什么问题。许可协议是用户必须同意的法律文件。我猜你对第一个感兴趣。
在Web应用程序中,您应该实现登录系统,并为付费用户提供用户名/密码。如果像Kobi提到的那样,您有一个公共API想要授权给其他用户,我建议您简单地提供给他们一个唯一的GUID( System.Guid.NewGuid();),并将该GUID作为每个API调用的参数。然后,您可以检查GUID是否与已付费帐户相关联,如果是,则允许其运行,否则请使用错误代码终止交易。我建议使用HTTPS连接进行此操作。
如果您正在尝试向用户出售Web应用程序,以便他们可以在自己的服务器上托管它,许可证密钥是一个好主意,您可能需要将其添加为web.config下的参数。有许多生成许可证密钥的方法,但在最简单的情况下,它们涉及生成随机数字,直到达到特定的校验和为止。例如,1253-38 (1+2 = 3, 5+3 = 8)。那是一个非常简单的键,容易破解,但如果需要,您可以想出更详细的校验和。

1

在我看来,Nate Boss已经涵盖了大部分基础知识。现在看看你的需求:

客户需要为3个用户提供应用程序,因此应用程序将适用于3个用户。如果客户需要将用户从3个扩展到10个,则意味着我必须为10个用户提供许可证...

您是否有命名用户?例如,客户的每个用户是否都有不同的用户名/密码?如果是,则您只需要为客户生成所需数量的用户帐户即可。现在,如果由您自己生成用户帐户,则您实际上不需要做任何特殊处理。但是,如果您想允许客户自己进行新用户注册,则需要在注册页面上具有许可逻辑。基本问题是识别客户,然后根据您的库存验证客户是否还有任何用户帐户。可以通过许多方式进行客户身份验证-数字证书、由您提供的注册代码(可以是随机数或由您的PK加密的盐化客户ID)等。

如果您没有命名用户,则问题是客户可以进行多少个并发登录?这就像检查您的库存一样简单。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接