Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 /// <summary>
 ///
 /// </summary>
 /// <returns></returns>
 protected virtual ILogin CreateLogin()
 {
     return(LoginProxy.GetLogin());
 }
Esempio n. 5
0
 /// <summary>
 ///
 /// </summary>
 /// <returns></returns>
 protected virtual ILogin CreateLogin()
 {
     return(LoginProxy.GetLogin(actionGetter, RetailID));
 }