/// <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); }
/// <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); }
/// <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); }
/// <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())); }
/// <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())); }
/// <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())); }
/// <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)); }
/// <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())); }
/// <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); }
/// <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(); }
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); } ); }
/// <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); }
/// <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))); }