/****************************** * 说明:协议基类 * 创建人:龚宇超 * 创建日期:2018-01-23 * 修改人: * 修改日期: * 修改备注: * 版本:1.0.0.0 ******************************/ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Sockets; namespace Lskj.SocketService { /// /// 协议基类 /// public class BaseSocketProtocol : AsyncSocketInvokeElement { protected bool _logined; protected string _userName; protected string _socketFlag; /// /// 是否登录 /// /// true if logined; otherwise, false. public bool Logined { get { return _logined; } } /// /// 用户名 /// /// The name of the user. public string UserName { get { return _userName; } } /// /// 协议类型标记 /// /// The socket flag. public string SocketFlag { get { return _socketFlag; } } public BaseSocketProtocol(AsyncSocketServer asyncSocketServer, AsyncSocketUserToken asyncSocketUserToken) : base(asyncSocketServer, asyncSocketUserToken) { _userName = ""; _logined = false; _socketFlag = ""; } /// /// 说明:登录验证 /// 创建人:龚宇超 /// 创建日期:2018-01-24 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// true if XXXX, false otherwise. public bool DoLogin() { string userName = ""; string password = ""; if (_incomingDataParser.GetValue(ProtocolKey.UserName, ref userName) & _incomingDataParser.GetValue(ProtocolKey.Password, ref password)) { if (password.Equals(BasicFunc.MD5String("admin"), StringComparison.CurrentCultureIgnoreCase)) { _outgoingDataAssembler.AddSuccess(); _userName = userName; _logined = true; Program.Logger.InfoFormat("{0} login success", userName); } else { _outgoingDataAssembler.AddFailure(ProtocolCode.UserOrPasswordError, ""); Program.Logger.ErrorFormat("{0} login failure,password error", userName); } } else _outgoingDataAssembler.AddFailure(ProtocolCode.ParameterError, ""); return DoSendResult(); } /// /// 说明:Active /// 创建人:龚宇超 /// 创建日期:2018-01-24 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// true if XXXX, false otherwise. public bool DoActive() { _outgoingDataAssembler.AddSuccess(); return DoSendResult(); } } }