在我的脑海中,一个基本的实现如下:
(伪代码)
带有 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
}
显然,上面的代码不是一个功能齐全的代码,对于任何语法错误,我深表歉意。您将在初始化步骤中使用该代码,如果应用程序没有有效订阅(或使用您希望的任何行为),则关闭应用程序并显示错误。