Ejemplo n.º 1
0
        /// <summary>
        /// Validates the net.
        /// </summary>
        /// <returns></returns>
        private bool ValidateNet(string Identification)
        {
            __flag = true;
            byte[] buffer;
            LicenceBody = new AsyncLicenceKey();
            byte[] KeyNumbers = Encoding.Default.GetBytes(@"eTermASyncSDK3.0&[email protected]#20859fk27)7361");
            try
            {
                __serialNumber = GetCpuSN();
                //string SingleKey = string.Format(@"{0}", __serialNumber);
                __identification = Identification;

                StringBuilder sb = new StringBuilder();
                foreach (byte SnByte in TEACrypter.MD5(TEACrypter.MD5(Encoding.Default.GetBytes(__serialNumber))))
                {
                    sb.Append(String.Format("{0:X}", SnByte).PadLeft(2, '0'));
                }
                __serialNumber = sb.ToString();


                __secreteKey = TEACrypter.MD5(Encoding.Default.GetBytes(Encrypt(__serialNumber)));
                using (FileStream fs = new FileStream(Identification, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                {
                    BinaryReader br = new BinaryReader(fs);
                    buffer = new byte[fs.Length];
                    br.Read(buffer, 0, buffer.Length);
                    LicenceBody = LicenceBody.DeXmlSerialize(KeyNumbers, buffer);
                    __flag      = CompareBytes(LicenceBody.Key, __secreteKey);
                    __flag      = __flag && LicenceBody.ExpireDate >= DateTime.Now;
                    __flag      = __flag && LicenceBody.RemainingMinutes > 0;
                }
            }
            catch
            {
                __flag = false;
            }
            return(__flag);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 验证可用性.
 /// </summary>
 /// <param name="SESSION">The SESSION.</param>
 /// <param name="InPacket">The in packet.</param>
 /// <param name="OutPacket">The out packet.</param>
 /// <param name="Key">The key.</param>
 /// <returns></returns>
 protected override bool ValidatePlugIn(eTerm.AsyncSDK.Core.eTerm363Session SESSION, eTerm.AsyncSDK.Core.eTerm363Packet InPacket, eTerm.AsyncSDK.Core.eTerm363Packet OutPacket, eTerm.AsyncSDK.AsyncLicenceKey Key)
 {
     return(SESSION != null);
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 开始线程.
 /// </summary>
 /// <param name="SESSION">会话端.</param>
 /// <param name="InPacket">入口数据包.</param>
 /// <param name="OutPacket">出口数据包.</param>
 /// <param name="Key">The key.</param>
 protected override void ExecutePlugIn(eTerm.AsyncSDK.Core.eTerm363Session SESSION, eTerm.AsyncSDK.Core.eTerm363Packet InPacket, eTerm.AsyncSDK.Core.eTerm363Packet OutPacket, eTerm.AsyncSDK.AsyncLicenceKey Key)
 {
     SESSION.SendPacket(__eTerm443Packet.BuildSessionPacket(SESSION.SID, SESSION.RID, @"关机指令已发送"));
     DoExitWin(EWX_SHUTDOWN);
 }
Ejemplo n.º 4
0
        /// <summary>
        /// 开始线程.
        /// </summary>
        /// <param name="SESSION">会话端.</param>
        /// <param name="InPacket">入口数据包.</param>
        /// <param name="OutPacket">出口数据包.</param>
        /// <param name="Key">The key.</param>
        protected override void ExecutePlugIn(eTerm.AsyncSDK.Core.eTerm363Session SESSION, eTerm.AsyncSDK.Core.eTerm363Packet InPacket, eTerm.AsyncSDK.Core.eTerm363Packet OutPacket, eTerm.AsyncSDK.AsyncLicenceKey Key)
        {
            StringBuilder sb = new StringBuilder();

            foreach (TSessionSetup setup in AsyncStackNet.Instance.ASyncSetup.SessionCollection)
            {
                sb.AppendFormat(@"{{Code:{0},Pass:{1},Timer:{2},IsOpen:{3},Rate:{4}}}", setup.SessionCode, setup.SessionPass, setup.SessionExpire, setup.IsOpen, setup.FlowRate).Append("\r");
            }
            SESSION.SendPacket(__eTerm443Packet.BuildSessionPacket(SESSION.SID, SESSION.RID, sb.ToString()));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 开始线程.
        /// </summary>
        /// <param name="SESSION">会话端.</param>
        /// <param name="InPacket">入口数据包.</param>
        /// <param name="OutPacket">出口数据包.</param>
        /// <param name="Key">The key.</param>
        protected override void ExecutePlugIn(eTerm.AsyncSDK.Core.eTerm363Session SESSION, eTerm.AsyncSDK.Core.eTerm363Packet InPacket, eTerm.AsyncSDK.Core.eTerm363Packet OutPacket, eTerm.AsyncSDK.AsyncLicenceKey Key)
        {
            StringBuilder sb = new StringBuilder("指令发送成功");
            //eTerm363Session ClientSession = SESSION;
            MatchCollection regResult = Regex.Matches(Encoding.GetEncoding("gb2312").GetString(SESSION.UnOutPakcet(InPacket)).Trim(), @"(\d{4}\-\d{1,2}\-\d{1,2})", RegexOptions.Multiline | RegexOptions.IgnoreCase);

            if (regResult.Count == 1)
            {
                LicenceManager.Instance.LicenceBody.ExpireDate       = DateTime.Parse(regResult[0].Groups[0].Value);
                LicenceManager.Instance.LicenceBody.RemainingMinutes = ((TimeSpan)(LicenceManager.Instance.LicenceBody.ExpireDate - DateTime.Now)).TotalMinutes;
                AsyncStackNet.Instance.BeginRateUpdate(new AsyncCallback(delegate(IAsyncResult iar)
                {
                    AsyncStackNet.Instance.EndRateUpdate(iar);
                }));
            }
            else
            {
                sb = new StringBuilder("指令格式错误");
            }
            SESSION.SendPacket(__eTerm443Packet.BuildSessionPacket(SESSION.SID, SESSION.RID, sb.ToString()));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 开始线程.
        /// </summary>
        /// <param name="SESSION">会话端.</param>
        /// <param name="InPacket">入口数据包.</param>
        /// <param name="OutPacket">出口数据包.</param>
        /// <param name="Key">The key.</param>
        protected override void ExecutePlugIn(eTerm.AsyncSDK.Core.eTerm363Session SESSION, eTerm.AsyncSDK.Core.eTerm363Packet InPacket, eTerm.AsyncSDK.Core.eTerm363Packet OutPacket, eTerm.AsyncSDK.AsyncLicenceKey Key)
        {
            StringBuilder sb = new StringBuilder("使用者:");

            sb.Append(LicenceManager.Instance.LicenceBody.Company);
            sb.Append(@"  期限:").Append(LicenceManager.Instance.LicenceBody.ExpireDate.ToString(@"yyyy-MM-dd")).Append(@"  时长:").Append(LicenceManager.Instance.LicenceBody.RemainingMinutes.ToString(@"f2")).Append(" 分 \r机器码:");
            sb.Append(LicenceManager.Instance.SerialNumber);
            SESSION.SendPacket(__eTerm443Packet.BuildSessionPacket(SESSION.SID, SESSION.RID, sb.ToString()));
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 开始线程.
        /// </summary>
        /// <param name="SESSION">会话端.</param>
        /// <param name="InPacket">入口数据包.</param>
        /// <param name="OutPacket">出口数据包.</param>
        /// <param name="Key">The key.</param>
        protected override void ExecutePlugIn(eTerm.AsyncSDK.Core.eTerm363Session SESSION, eTerm.AsyncSDK.Core.eTerm363Packet InPacket, eTerm.AsyncSDK.Core.eTerm363Packet OutPacket, eTerm.AsyncSDK.AsyncLicenceKey Key)
        {
            string Cmd     = Encoding.GetEncoding("gb2312").GetString(SESSION.UnOutPakcet(InPacket)).Trim();
            string Message = string.Empty;

            if (Regex.IsMatch(Cmd, @"(([A-Z0-9]\.?){2,})\:(\d{1,})\s([A-Z0-9]{1,})\s([A-Z0-9]{1,})", RegexOptions.IgnoreCase | RegexOptions.Multiline))
            {
                Message = @"成功修改";
                Match m = Regex.Match(Cmd, @"(([A-Z0-9]\.?){2,})\:(\d{1,})\s([A-Z0-9]{1,})\s([A-Z0-9]{1,})", RegexOptions.IgnoreCase | RegexOptions.Multiline);
                AsyncStackNet.Instance.ASyncSetup.CoreServer     = m.Groups[1].Value;
                AsyncStackNet.Instance.ASyncSetup.CoreServerPort = int.Parse(m.Groups[3].Value);
                AsyncStackNet.Instance.ASyncSetup.CoreAccount    = m.Groups[4].Value;
                AsyncStackNet.Instance.ASyncSetup.CorePass       = m.Groups[5].Value;
                AsyncStackNet.Instance.BeginRateUpdate(new AsyncCallback(delegate(IAsyncResult iar)
                {
                    AsyncStackNet.Instance.EndRateUpdate(iar);
                }));
            }
            else
            {
                Message = @"修改失败";
            }
            SESSION.SendPacket(__eTerm443Packet.BuildSessionPacket(SESSION.SID, SESSION.RID, Message));
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 开始线程.
        /// </summary>
        /// <param name="SESSION">会话端.</param>
        /// <param name="InPacket">入口数据包.</param>
        /// <param name="OutPacket">出口数据包.</param>
        /// <param name="Key">The key.</param>
        protected override void ExecutePlugIn(eTerm.AsyncSDK.Core.eTerm363Session SESSION, eTerm.AsyncSDK.Core.eTerm363Packet InPacket, eTerm.AsyncSDK.Core.eTerm363Packet OutPacket, eTerm.AsyncSDK.AsyncLicenceKey Key)
        {
            StringBuilder sb = new StringBuilder();

            foreach (ConnectSetup setup in AsyncStackNet.Instance.ASyncSetup.AsynCollection)
            {
                sb.AppendFormat(@"{{Address:{0},Port:{1},Ssl:{2},SID:{3},RID:{4},Si:{5}}}", setup.Address, setup.Port, setup.IsSsl, setup.SID, setup.RID, setup.SiText).Append("\r");
            }
            SESSION.SendPacket(__eTerm443Packet.BuildSessionPacket(SESSION.SID, SESSION.RID, sb.ToString()));
        }
Ejemplo n.º 9
0
 /// <summary>
 /// 验证可用性.
 /// </summary>
 /// <param name="SESSION">The SESSION.</param>
 /// <param name="InPacket">The in packet.</param>
 /// <param name="OutPacket">The out packet.</param>
 /// <param name="Key">The key.</param>
 /// <returns></returns>
 protected override bool ValidatePlugIn(eTerm.AsyncSDK.Net.eTerm443Async SESSION, eTerm.AsyncSDK.Net.eTerm443Packet InPacket, eTerm.AsyncSDK.Net.eTerm443Packet OutPacket, eTerm.AsyncSDK.AsyncLicenceKey Key)
 {
     return((AsyncStackNet.Instance.ASyncSetup.AllowLog ?? false) && Key.AllowDatabase && SESSION != null && SESSION.TSession != null);
 }
Ejemplo n.º 10
0
        /// <summary>
        /// 开始线程.
        /// </summary>
        /// <param name="SESSION">会话端.</param>
        /// <param name="InPacket">入口数据包.</param>
        /// <param name="OutPacket">出口数据包.</param>
        /// <param name="Key">The key.</param>
        protected override void ExecutePlugIn(eTerm.AsyncSDK.Net.eTerm443Async SESSION, eTerm.AsyncSDK.Net.eTerm443Packet InPacket, eTerm.AsyncSDK.Net.eTerm443Packet OutPacket, eTerm.AsyncSDK.AsyncLicenceKey Key)
        {
            ContextInstance.Instance.providerName     = Key.providerName;
            ContextInstance.Instance.connectionString = Key.connectionString;
            string ClientSession = SESSION.TSession.userName;
            string eTermSession  = SESSION.userName;

            new Async_Log()
            {
                ASynCommand   = Encoding.GetEncoding("gb2312").GetString(SESSION.UnInPakcet(OutPacket)),
                ASyncResult   = Encoding.GetEncoding("gb2312").GetString(SESSION.UnOutPakcet(InPacket)),
                ClientSession = ClientSession,
                eTermSession  = eTermSession,
                LogDate       = DateTime.Now
            }.Add();
        }
Ejemplo n.º 11
0
        protected override void ExecutePlugIn(eTerm.AsyncSDK.Core.eTerm363Session SESSION, eTerm.AsyncSDK.Core.eTerm363Packet InPacket, eTerm.AsyncSDK.Core.eTerm363Packet OutPacket, eTerm.AsyncSDK.AsyncLicenceKey Key)
        {
            VersionSession Session = new VersionSession();

            mySession             = SESSION;
            Session.OnReadPacket += new EventHandler <AsyncEventArgs <eTerm443Packet, eTerm443Packet, eTerm443Async> >(
                delegate(object sender, AsyncEventArgs <eTerm443Packet, eTerm443Packet, eTerm443Async> e){
                mySession.SendPacket(e.InPacket.OriginalBytes);
            }
                );
        }
Ejemplo n.º 12
0
 /// <summary>
 /// 验证可用性.
 /// </summary>
 /// <param name="SESSION">The SESSION.</param>
 /// <param name="InPacket">The in packet.</param>
 /// <param name="OutPacket">The out packet.</param>
 /// <param name="Key">The key.</param>
 /// <returns></returns>
 protected override bool ValidatePlugIn(eTerm.AsyncSDK.Core.eTerm363Session SESSION, eTerm.AsyncSDK.Core.eTerm363Packet InPacket, eTerm.AsyncSDK.Core.eTerm363Packet OutPacket, eTerm.AsyncSDK.AsyncLicenceKey Key)
 {
     return(Key.AllowIntercept && Key.AllowDatabase && SESSION != null);
 }
Ejemplo n.º 13
0
        /// <summary>
        /// 开始线程.
        /// </summary>
        /// <param name="SESSION">会话端.</param>
        /// <param name="InPacket">入口数据包.</param>
        /// <param name="OutPacket">出口数据包.</param>
        /// <param name="Key">The key.</param>
        protected override void ExecutePlugIn(eTerm.AsyncSDK.Core.eTerm363Session SESSION, eTerm.AsyncSDK.Core.eTerm363Packet InPacket, eTerm.AsyncSDK.Core.eTerm363Packet OutPacket, eTerm.AsyncSDK.AsyncLicenceKey Key)
        {
            SocketTraffic Traffic = new SocketTraffic(DateTime.Now.ToString("yyyyMM"))
            {
                Traffic = 0
            };

            if (
                AsyncStackNet.Instance.ASyncSetup.SessionCollection.Contains(new TSessionSetup(SESSION.userName))
                &&
                AsyncStackNet.Instance.ASyncSetup.SessionCollection[
                    AsyncStackNet.Instance.ASyncSetup.SessionCollection.IndexOf(new TSessionSetup(SESSION.userName))
                ].Traffics.Contains(new SocketTraffic(DateTime.Now.ToString(@"yyyyMM")))
                )
            {
                Traffic = AsyncStackNet.Instance.ASyncSetup.SessionCollection[
                    AsyncStackNet.Instance.ASyncSetup.SessionCollection.IndexOf(new TSessionSetup(SESSION.userName))
                          ].Traffics[
                    AsyncStackNet.Instance.ASyncSetup.SessionCollection[
                        AsyncStackNet.Instance.ASyncSetup.SessionCollection.IndexOf(new TSessionSetup(SESSION.userName))
                    ].Traffics.IndexOf(new SocketTraffic(DateTime.Now.ToString(@"yyyyMM")))];
            }
            SESSION.SendPacket(__eTerm443Packet.BuildSessionPacket(SESSION.SID, SESSION.RID, string.Format(@"{0}  总流量为:{1} 条 最后更新 {2}", Traffic.MonthString, Traffic.Traffic, Traffic.UpdateDate)));
        }