using iWare.Authorize.Dto; using Newtonsoft.Json; using ProjectCode; namespace iWare.Authorize { /// /// 授权帮助类 /// public class AuthorizeHelper { /// /// 验证授权 /// /// 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(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); } } /// /// 验证开发授权 /// /// /// private static AuthorizeFunRetEntity ValidateLicenseForDev(string filePath, ValidateLicenseInput input, AuthorizeFunRetEntity newRet) { var str_expiryDate = ""; if (!string.IsNullOrEmpty(newRet.expiryDate)) { str_expiryDate = Convert.ToDateTime(newRet.expiryDate).ToString("yyyy-MM-dd HH:mm:ss"); } //读取 开发授权 var val = EnDecode.ValidateDevLicense(filePath); if (val.IsValid) { if (input != null && input.WaringDays != null) { int waringDays = (int)input.WaringDays; double _my_RemainingDays = Convert.ToDouble(val.RemainingDays.ToString("0.0")); if (waringDays >= _my_RemainingDays) { return AuthorizeFunRetEntity.Success("成功", val.RemainingDays, $"授权剩余天数{_my_RemainingDays}小于{waringDays}天,到期日[{str_expiryDate}]"); } } return AuthorizeFunRetEntity.Success("成功", val.RemainingDays, newRet); } else { if (string.IsNullOrEmpty(newRet.expiryDate)) { return AuthorizeFunRetEntity.Fail($"授权失败", val.RemainingDays, newRet); } return AuthorizeFunRetEntity.Fail($"授权失败,到期日[{str_expiryDate}]", val.RemainingDays, newRet); } } } }