using iWare.Authorize.Dto;
|
using Newtonsoft.Json;
|
using ProjectCode;
|
|
namespace iWare.Authorize
|
{
|
/// <summary>
|
/// 授权帮助类
|
/// </summary>
|
public class AuthorizeHelper
|
{
|
/// <summary>
|
/// 验证授权
|
/// </summary>
|
/// <returns></returns>
|
public static AuthorizeFunRetEntity ValidateLicense(ValidateLicenseInput input)
|
{
|
try
|
{
|
//1、获取mac地址
|
var macAddresses = EnDecode.GetAllMacAddresses();
|
//2、找到 授权文件
|
string baseDir = AppDomain.CurrentDomain.BaseDirectory;
|
DirectoryInfo theFolder = new DirectoryInfo(baseDir + @"\\AuthorizeFile\\lic");
|
//遍历文件,读取第一个文件
|
var files = theFolder.GetFiles();
|
if (files.Length == 0)
|
{
|
return AuthorizeFunRetEntity.Fail("未找到授权文件");
|
}
|
|
var firstFile = files.First();
|
//3、读取 永久授权
|
string rst = EnDecode.ReadAndValidateLicenseFile(firstFile.FullName);
|
if (!string.IsNullOrEmpty(rst))
|
{
|
AuthorizeFunRetEntity newRet = JsonConvert.DeserializeObject<AuthorizeFunRetEntity>(rst);
|
if (EnDecode.ValidatePermanentLicense(firstFile.FullName))
|
{
|
return AuthorizeFunRetEntity.Success("成功", newRet);
|
}
|
else
|
return ValidateLicenseForDev(firstFile.FullName, input, newRet);
|
}
|
else
|
{
|
return AuthorizeFunRetEntity.Fail("无效的授权文件");
|
}
|
}
|
catch (Exception ex)
|
{
|
return AuthorizeFunRetEntity.Fail("异常:" + ex.Message);
|
}
|
|
}
|
|
/// <summary>
|
/// 验证开发授权
|
/// </summary>
|
/// <param name="filePath"></param>
|
/// <returns></returns>
|
private static AuthorizeFunRetEntity ValidateLicenseForDev(string filePath, ValidateLicenseInput input, AuthorizeFunRetEntity newRet)
|
{
|
//读取 开发授权
|
var val = EnDecode.ValidateDevLicense(filePath);
|
if (val.IsValid)
|
{
|
if (input != null && input.WaringDays != null)
|
{
|
int waringDays = (int)input.WaringDays;
|
if (waringDays >= val.RemainingDays)
|
{
|
return AuthorizeFunRetEntity.Success("成功", val.RemainingDays, $"授权剩余天数{val.RemainingDays}小于{waringDays}天");
|
}
|
}
|
return AuthorizeFunRetEntity.Success("成功", val.RemainingDays, newRet);
|
}
|
else
|
return AuthorizeFunRetEntity.Fail("授权失败", val.RemainingDays, newRet);
|
|
}
|
|
}
|
}
|