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