Esempio n. 1
0
        /// <summary>
        /// 用户登录
        /// </summary>
        /// <param name="userName">用户名</param>
        /// <param name="password">密码</param>
        /// <param name="registKey">极光registKey</param>
        /// <param name="loginDevice">登录设备</param>
        /// <param name="clientVersion">客户端版本</param>
        /// <returns></returns>
        public async Task<OperationResult> Login(string userName, string password, string registKey, LoginDevice loginDevice,string clientVersion)
        {
            userName.CheckNotNullOrEmpty("userName");
            password.CheckNotNullOrEmpty("password");

            SysUser sUser = await UserManager.FindByNameAsync(userName);
            var result = await UserManager.CheckPasswordAsync(sUser, password);
            if (sUser == null || sUser.UserType != UserType.App用户)
            {
                return new OperationResult(OperationResultType.QueryNull, "用户不存在", null);
            }
            else if (sUser.IsLocked)
            {
                return new OperationResult(OperationResultType.ValidError, "该账号已被冻结,请联系客服。", null);
            }
            else if (!await UserManager.CheckPasswordAsync(sUser, password))
            {
                return new OperationResult(OperationResultType.ValidError, "用户名或密码错误", null);
            }
            else
            {
                //更新最后一次登录的RegistKey
                var theUser = await UserInfos.SingleOrDefaultAsync(p => p.SysUser.UserName == userName);
                if (theUser == null)
                {
                    return new OperationResult(OperationResultType.ValidError, "数据错误", null);
                }

                if (theUser.RegistKey != registKey)
                {
                    theUser.RegistKey = registKey;
                    await UserInfoRepo.UpdateAsync(theUser);
                }

                //变更登录信息
                await ResetToken(theUser, loginDevice, clientVersion);

                var loginInfo = new UserTokenDto()
                {
                    Id = theUser.Id,
                    NickName = theUser.SysUser.NickName,
                    HeadPic = theUser.HeadPic,
                    Sex = theUser.Sex,
                    Token = theUser.Token
                };
                return new OperationResult(OperationResultType.Success, "登录成功", loginInfo);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 用户登录
        /// </summary>
        /// <param name="phoneNo">手机号</param>
        /// <param name="password">密码</param>
        /// <param name="registKey">极光registKey</param>
        /// <param name="loginDevice">登录设备</param>
        /// <param name="clientVersion">客户端版本</param>
        /// <returns></returns>
        public async Task<OperationResult> Login(string phoneNo, string password, string registKey, LoginDevice loginDevice, string clientVersion)
        {
            phoneNo.CheckNotNullOrEmpty("phoneNo");
            phoneNo.CheckNotNullOrEmpty("password");

            SysUser sUser = await UserManager.FindByNameAsync(phoneNo);
            var result = await UserManager.CheckPasswordAsync(sUser, password);

            if (!await UserManager.CheckPasswordAsync(sUser, password))
            {
                return new OperationResult(OperationResultType.ValidError, "用户名或密码错误", null);
            }
            else
            {
                //更新最后一次登录的RegistKey
                var theUser = await UserInfos.SingleOrDefaultAsync(p => p.SysUser.PhoneNumber == phoneNo);
                if (theUser.RegistKey != registKey)
                {
                    theUser.RegistKey = registKey;
                    await UserInfoRepo.UpdateAsync(theUser);
                }

                //变更登录信息
                await ResetToken(theUser, loginDevice, clientVersion);

                var loginInfo = new UserTokenDto()
                {
                    Id = theUser.Id,
                    NickName = theUser.SysUser.NickName,
                    HeadPic = theUser.HeadPic,
                    Token = theUser.Token
                };
                return new OperationResult(OperationResultType.Success, "登录成功", loginInfo);
            }
        }