示例#1
0
        public static MQActionResult <string> Login(string sessionId, SysMemberLoginParam param)
        {
            //if (PublicData.ServerParameter.IsEmpty())
            //{
            //    return MQActionResult<string>.Error(CommonErrors.CenterServerNotStart);
            //}

            var user = SysMemberService.Instance.FindByUserName(param.UserName);

            if (user == null)
            {
                return(MQActionResult <string> .Error($"没找到用户'{param.UserName}'"));
            }

            if (!CryptoUtil.MD5(param.Password).Equals(user.Pwd))
            {
                return(MQActionResult <string> .Error("用户名或密码不正确!"));
            }

            // 检查不允许重复登陆
            if (SessionPool.GetDeskClientSessionIdByUserName(param.UserName) != null)
            {
                return(MQActionResult <string> .Error($"用户'{param.UserName}'正在别处登陆,请先关闭之前的登陆账户"));
            }

            // 为新的Session分配新的BetServer
            //string betServerId = AccountMapping.RandomlyAssignedABetServerId();
            //if (string.IsNullOrEmpty(betServerId))
            //{
            //    return MQActionResult<string>.Error("投注服务资源不足,无法登陆,请联系客服!");
            //}
            //Session betServerSession = SessionPool.GetByClientId(betServerId, ClientTypeEnum.Bet);
            //if (betServerSession == null)
            //{
            //    return MQActionVoidResult.Error("未找到匹配的投注端");
            //}

            // 创建Session
            sessionId = Guid.NewGuid().ToString();
            Session newession = new Session(sessionId, ClientTypeEnum.Client)
            {
                SysmemberId       = user.Id,
                SysmemberUsername = user.Account,
                BetServerId       = "" //betServerId
            };

            SessionPool.SetNew(sessionId, newession);

            // 为BetServerSession设置ClientDeskId
            //betServerSession.ClientDeskId = sessionId;

            SysMemberService.Instance.UpdateLoginTime(user.Id);
            return(MQActionResult <string> .Ok(newession.ClientId));
        }
示例#2
0
        /// <summary>
        /// 发送登录请求
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnLogin_Click(object sender, EventArgs e)
        {
            // 校验
            if (string.IsNullOrWhiteSpace(txtAccount.Text))
            {
                MessageBox.Show("请输入用户名!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            if (string.IsNullOrWhiteSpace(txtPwd.Text))
            {
                MessageBox.Show("请输入密码!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            var loginParam = new SysMemberLoginParam()
            {
                UserName = txtAccount.Text.Trim(),
                Password = txtPwd.Text.Trim()
            };


            //启动与中心服务器的连接
            PublicData.RequestSocket = new RequestSocket();
            PublicData.RequestSocket.Connect(MQConfig.ResponseServer);

            var result = PublicData.RequestSocket.RequestSendReceive <MQActionResult <string> >(
                IdKeyData.Create(PublicData.SessionId, "SysMember/Login", loginParam));

            if (result == null)
            {
                MessageBoxEx.Alert("连接服务器失败,请检查网络或联系管理员!");
                return;
            }
            else if (result.IsOK)
            {
                PublicData.SessionId        = result.Data;
                PublicData.SysmemberAccount = loginParam.UserName;

                Visible = false;
                using (var formLogin = new MainForm()
                {
                    StartPosition = FormStartPosition.CenterScreen, TopMost = true
                })
                {
                    //暂时采用模式调试
                    formLogin.Show();

                    //var diaResult = formLogin.ShowDialog();
                    //if (diaResult == DialogResult.Cancel)
                    //{
                    //    Close();
                    //    return;
                    //}
                    //else if (formLogin.ShowDialog() == DialogResult.Ignore)//重新登录
                    //{
                    //    Visible = true;
                    //    return;
                    //}
                }
            }
            else
            {
                MessageBoxEx.Alert(result.ErrorMsg);
                txtPwd.Focus();
                return;
            }
        }