1

我即将发布我的应用程序,现在正试图弄清楚如何解决许可问题。

基本上,我希望能够为客户提供每月支付费用或一次性费用的选项。

我真的不在乎花费大量时间来保护它,因此它不能被破解,如果有人想破解应用程序,他们无论如何都会......所以这更适合诚实的人。

我正在考虑在 PHP 中使用一个后端,将不同的许可证类型存储在 MySQL 数据库中。理论上这对我来说很有意义,但我不知道如何在实际的 c# 代码中执行它..

有谁知道我如何实施一个基本的许可系统,这样我就不用花几天时间在上面了?:)

非常感谢任何帮助和提示!

编辑 - 澄清:

我有 ac# 应用程序,但它检查存储客户的 php 后端脚本。

4

1 回答 1

2

在我的脑海中,一个基本的实现如下:

(伪代码)

带有 2 个表的 MySQL 数据库:

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 回调 url:https ://www.example.com/authenticate.php 返回:JSON 或 XML 采用:发布数据:用户名:用户密码:pass

PHP 代码检查传入的用户名和密码是否正确,如果正确,则检查它们是否具有有效的订阅。返回 JSON 或 XML 作为响应:

{status:true} 或 {status:false}

您可能希望扩展响应以包括订阅类型和到期日期,以便应用程序可以在订阅离线且无法与您的服务器通信时缓存订阅。

您的 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
}

显然,上面的代码不是一个功能齐全的代码,对于任何语法错误,我深表歉意。您将在初始化步骤中使用该代码,如果应用程序没有有效订阅(或使用您希望的任何行为),则关闭应用程序并显示错误。

于 2012-08-17T18:21:36.960 回答