/******************************
* 说明:协议基类
* 创建人:龚宇超
* 创建日期: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();
}
}
}