public ResponseData Excute(LoginInfo data) { int userId; int userType; string passportId; if (!string.IsNullOrEmpty(data.RetailUser) && !string.IsNullOrEmpty(data.RetailToken)) { ILogin login = LoginProxy.GetLogin(data.RetailID, data); login.Password = DecodePassword(login.Password); var watch = RunTimeWatch.StartNew("Request login server"); try { if (login.CheckLogin()) { watch.Check("GetResponse"); userId = int.Parse(login.UserID); passportId = login.PassportID; userType = login.UserType; } else { //DoLoginFail(); throw new HandlerException(StateCode.Error, StateDescription.PassworkError); } } finally { watch.Flush(true, 100); } } else { if (string.IsNullOrEmpty(data.Pwd) || data.Pwd.Length < 5) { throw new HandlerException(StateCode.Error, StateDescription.PassworkLengthError); } data.Pwd = DecodePassword(data.Pwd); //快速登录 RegType regType; userId = SnsManager.LoginByDevice(data.Pid, data.Pwd, data.DeviceID, out regType, data.IsCustom); if (userId <= 0) { throw new HandlerException(StateCode.PassworkError, StateDescription.PassworkError); } passportId = data.Pid; userType = (int)regType; } return(AuthorizeLogin(userId, passportId, userType)); }
/// <summary> /// 子类实现Action处理 /// </summary> /// <returns></returns> public override bool TakeAction() { ILogin login = LoginProxy.GetLogin(); if (login != null && login.CheckLogin()) { Uid = login.UserID; Sid = Current.SessionId; UserId = Uid.ToInt(); PassportId = login.PassportID; var session = GameSession.Get(Sid); if (session != null) { session.BindIdentity(UserId); } UserType = SnsManager.GetUserType(PassportId); SetParameter(login); if (!GetError() && DoSuccess(UserId)) { if (UserFactory != null) { var user = UserFactory(UserId); if (user != null) { Current.User = user; user.RemoteAddress = httpGet.RemoteAddress; } } return(true); } } else { Uid = string.Empty; Sid = string.Empty; ErrorCode = Language.Instance.ErrorCode; ErrorInfo = Language.Instance.PasswordError; } return(false); }
public override bool TakeAction() { ILogin login = LoginProxy.GetLogin(); if (login != null && login.CheckLogin()) { Uid = login.UserID; Sid = httpGet.SessionId;//string.Format("{0}|{1}|{2}", login.SessionID, GameType, ServerID); UserId = Uid.ToInt(); PassportId = login.PassportID; UserType = SnsManager.GetUserType(PassportId); SetParameter(login); InitContext(actionId, UserId); using (RequestLock()) { if (!GetError() && DoSuccess(UserId)) { if (UserFactory != null) { var user = UserFactory(UserId); if (user != null) { user.RemoteAddress = httpGet.RemoteAddress; user.SocketSid = httpGet.SessionId; httpGet.LoginSuccessCallback(UserId); } } return(true); } } } else { Uid = string.Empty; Sid = string.Empty; ErrorCode = LanguageHelper.GetLang().ErrorCode; ErrorInfo = LanguageHelper.GetLang().PasswordError; } return(false); }
/// <summary> /// /// </summary> /// <returns></returns> protected virtual ILogin CreateLogin() { return(LoginProxy.GetLogin()); }
/// <summary> /// /// </summary> /// <returns></returns> protected virtual ILogin CreateLogin() { return(LoginProxy.GetLogin(actionGetter, RetailID)); }