Пример #1
0
        public static string SaveLicence(LicenceModel lm)
        {
            string text = "Licence.Licence";

            text = LicenceConfig.CreateAssemblyLocationFile(text);
            try
            {
                FileStream   fileStream   = new FileStream(text, FileMode.Open, FileAccess.Write, FileShare.None);
                StreamWriter streamWriter = new StreamWriter(fileStream);
                streamWriter.WriteLine(DES.Instance(LicenceConfig.DesPwd).EncryptString(lm.CustomerName));
                streamWriter.WriteLine(DES.Instance(LicenceConfig.DesPwd).EncryptString(lm.CustomerCode));
                streamWriter.WriteLine(lm.MachineCode);
                streamWriter.WriteLine(DES.Instance(LicenceConfig.DesPwd).EncryptString(lm.RegisteDate));
                streamWriter.WriteLine(DES.Instance(LicenceConfig.DesPwd).EncryptString(lm.UseDays.ToString()));
                streamWriter.WriteLine(DES.Instance(LicenceConfig.DesPwd).EncryptString(lm.ConnectCount.ToString()));
                streamWriter.WriteLine(lm.LinceCode);
                streamWriter.Close();
                streamWriter.Dispose();
                fileStream.Close();
                fileStream.Dispose();
            }
            catch
            {
            }
            return(text);
        }
Пример #2
0
        public static string GetRunLicenceCode(LicenceModel lm, ref string FilePath)
        {
            FilePath = string.Empty;
            LicenceServer.SetIntCode();
            string text = string.Concat(new object[]
            {
                lm.CustomerCode,
                lm.RegisteDate,
                lm.UseDays.ToString(),
                lm.ConnectCount,
                lm.MachineCode
            });
            int length = text.Length;

            LicenceServer.intNumber = new int[length];
            LicenceServer.Charcode  = new char[length];
            for (int i = 1; i < LicenceServer.Charcode.Length; i++)
            {
                LicenceServer.Charcode[i] = Convert.ToChar(text.Substring(i - 1, 1));
            }
            for (int j = 1; j < LicenceServer.intNumber.Length; j++)
            {
                LicenceServer.intNumber[j] = LicenceServer.intCode[Convert.ToInt32(LicenceServer.Charcode[j])] + Convert.ToInt32(LicenceServer.Charcode[j]);
            }
            string text2 = "";

            for (int j = 1; j < LicenceServer.intNumber.Length; j++)
            {
                if (LicenceServer.intNumber[j] >= 48 && LicenceServer.intNumber[j] <= 57)
                {
                    text2 += Convert.ToChar(LicenceServer.intNumber[j]).ToString();
                }
                else if (LicenceServer.intNumber[j] >= 65 && LicenceServer.intNumber[j] <= 90)
                {
                    text2 += Convert.ToChar(LicenceServer.intNumber[j]).ToString();
                }
                else if (LicenceServer.intNumber[j] >= 97 && LicenceServer.intNumber[j] <= 122)
                {
                    text2 += Convert.ToChar(LicenceServer.intNumber[j]).ToString();
                }
                else if (LicenceServer.intNumber[j] > 122)
                {
                    text2 += Convert.ToChar(LicenceServer.intNumber[j] - 10).ToString();
                }
                else
                {
                    text2 += Convert.ToChar(LicenceServer.intNumber[j] - 9).ToString();
                }
            }
            lm.LinceCode          = text2;
            FilePath              = LicenceConfig.SaveLicence(lm);
            LicenceServer.Licence = lm;
            return(lm.LinceCode);
        }
Пример #3
0
        public static LicenceModel ReadLicence(string FilePath, string RegesiterMachineCode, ref string ErrorMessage)
        {
            LicenceModel licenceModel = new LicenceModel();

            ErrorMessage = string.Empty;
            LicenceModel result;

            if (!File.Exists(FilePath))
            {
                ErrorMessage = "未找到许可文件!";
                result       = licenceModel;
            }
            else
            {
                FileStream   fileStream   = new FileStream(FilePath, FileMode.Open, FileAccess.Read, FileShare.None);
                StreamReader streamReader = new StreamReader(fileStream);
                string       text         = streamReader.ReadLine();
                string       text2        = streamReader.ReadLine();
                string       machineCode  = streamReader.ReadLine();
                string       text3        = streamReader.ReadLine();
                string       text4        = streamReader.ReadLine();
                string       text5        = streamReader.ReadLine();
                string       text6        = streamReader.ReadLine();
                streamReader.Close();
                streamReader.Dispose();
                fileStream.Close();
                fileStream.Dispose();
                text  = DES.Instance(LicenceConfig.DesPwd).DecryptString(text);
                text2 = DES.Instance(LicenceConfig.DesPwd).DecryptString(text2);
                text3 = DES.Instance(LicenceConfig.DesPwd).DecryptString(text3);
                text4 = DES.Instance(LicenceConfig.DesPwd).DecryptString(text4);
                text5 = DES.Instance(LicenceConfig.DesPwd).DecryptString(text5);
                licenceModel.CustomerName = text;
                licenceModel.CustomerCode = text2;
                licenceModel.MachineCode  = machineCode;
                licenceModel.RegisteDate  = text3;
                licenceModel.UseDays      = ((text4 == string.Empty) ? "0" : text4);
                licenceModel.ConnectCount = ((text5 == string.Empty) ? 0 : int.Parse(text5));
                licenceModel.LinceCode    = text6;
                if (!string.IsNullOrEmpty(RegesiterMachineCode))
                {
                    if (RegesiterMachineCode != licenceModel.MachineCode)
                    {
                        ErrorMessage = "机器码识别失败,许可不可用,如需继续使用,请和我们取得联系!";
                    }
                }
                else if (LicenceServer.GetMachineCode(true) != licenceModel.MachineCode)
                {
                    ErrorMessage = "机器码识别失败,许可不可用,如需继续使用,请和我们取得联系!";
                }
                if (LicenceServer.GetRunLicenceCode(licenceModel) == text6)
                {
                    DateTime t  = DateTime.Parse(text3);
                    DateTime t2 = t.AddDays((double)int.Parse(licenceModel.UseDays.ToString()));
                    if (t2 < DateTime.Now)
                    {
                        ErrorMessage = "许可已过期";
                        LicenceConfig.PauseLicence(FilePath, licenceModel);
                    }
                    if (t > DateTime.Now)
                    {
                        ErrorMessage = "注册时间被篡改,许可不可用,如需继续使用,请和我们取得联系!";
                    }
                }
                else
                {
                    ErrorMessage = "许可文件被篡改,许可不可用,如需继续使用,请和我们取得联系!";
                }
                result = licenceModel;
            }
            return(result);
        }