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 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}天,到期日{newRet.expiryDate}"); } } return AuthorizeFunRetEntity.Success("成功", val.RemainingDays, newRet); } else { if (string.IsNullOrEmpty(newRet.expiryDate)) { return AuthorizeFunRetEntity.Fail($"授权失败", val.RemainingDays, newRet); } return AuthorizeFunRetEntity.Fail($"授权失败,到期日{newRet.expiryDate}", val.RemainingDays, newRet); } } } }