我即将发布我的应用程序,现在正试图弄清楚如何解决许可问题。
基本上,我希望能够为客户提供每月支付费用或一次性费用的选项。
我真的不在乎花费大量时间来保护它,所以它无法破解,如果有人想破解应用程序他们无论如何......所以这更适合诚实的人。
我想在PHP中使用后端,将不同的许可证类型存储在MySQL数据库中。理论上这对我来说很有意义,但我不知道如何在实际的c#代码中执行它。
有谁知道我如何实施基本许可系统,以便我不花费数天时间? :)
非常感谢任何帮助和提示!
编辑 - 澄清:
我有一个c#app,但要检查存储客户的php后端脚本。
答案 0 :(得分:2)
在我的头脑中,基本的实现如下:
(psudo代码)
带有2个表的MySQL DB:
TABLE user
id int primary key auto increment
username varchar not null
password varchar not null
TABLE subscription
id int primary key auto increment
type int not null
expires date not null
PHP回调网址:https://www.example.com/authenticate.php 返回:JSON或XML take:post data:username:user password:pass
PHP代码检查传入的用户名和密码是否正确,如果正确,则检查它们是否具有有效订阅。返回JSON或XML作为响应:
{状态:真} 要么 {状态:假}
您可能希望扩展响应以包括订阅类型和到期日期,以便应用程序可以在订阅脱机且无法与您的服务器通信时缓存订阅。
你的c#应用程序需要使用类似于以下的代码(如果你喜欢的话,适应xml)
string URL = 'https://www.example.com/authenticate.php";
string myParameters = "username=user&password=pass";
using (var webClient = new System.Net.WebClient()) {
webClient.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
string HtmlResult = wc.UploadString(URI, myParameters);
// Now parse with JSON.Net
}
显然上面的代码不是一个功能齐全的代码,我为任何语法错误道歉。您将在初始化步骤中使用该代码,如果它们没有有效的订阅(或使用您希望的任何行为),则会关闭应用程序并显示错误。