Beispiel #1
0
        public async Task <IActionResult> ApiLogin([FromBody] CaUserLoginModel caUserLoginModel)
        {
            var apiMsg = new ApiMessage();

            try
            {
                var resultTuple = await userAccountBusiness.LoginUserNamePwd(caUserLoginModel);

                if (resultTuple.Item1)
                {
                    var accessToken = Guid.NewGuid().ToString();
                    var redisDoc    = new RedisDocument <string>();
                    redisDoc.ExpireTime = DateTime.Now.AddDays(30);
                    redisDoc.SetTime    = DateTime.Now;
                    redisDoc.Value      = resultTuple.Item3;
                    redisDoc.Key        = accessToken;
                    await distributedCache.SetValue(redisDoc);

                    apiMsg.Data = accessToken;
                }
                else
                {
                    apiMsg.SetFault(resultTuple.Item2);
                }
            }
            catch (Exception exc)
            {
                apiMsg.SetFault(exc);
            }
            return(Json(apiMsg));
        }
Beispiel #2
0
        public async Task <IActionResult> Login(CaUserLoginModel loginModel)
        {
            var result      = new ApiMessage();
            var loginResult = await userAccountBusiness.LoginUserNamePwd(loginModel);

            if (loginResult.Item1)
            {
                var str = JsonConvert.SerializeObject(loginResult.Item3);
                HttpContext.Session.SetString(UserAccountBusiness.UserAccountSessionkey, str);
                await HttpContext.Session.CommitAsync();

                result.Success = true;
                result.Message = "登录成功";
            }
            else
            {
                result.Success = false;
                result.Message = loginResult.Item2;
            }
            return(Json(result));
        }
Beispiel #3
0
        public async Task <Tuple <bool, string, string> > LoginUserNamePwd(CaUserLoginModel loginModel)
        {
            if (loginModel == null)
            {
                return(Tuple.Create(false, "注册信息为空", string.Empty));
            }

            if (string.IsNullOrEmpty(loginModel.UserName) || string.IsNullOrEmpty(loginModel.Password))
            {
                return(Tuple.Create(false, "用户名或密码不能为空", string.Empty));
            }

            var userEntity = await userAccountAccessor.OneAsync <UserAccountEntry>(x => x.UserNamePwd.UserName == loginModel.UserName, "UserNamePwd");

            if (userEntity == null)
            {
                return(Tuple.Create(false, "用户名不存在", string.Empty));
            }

            string sha256String = EncryptPwd(loginModel.Password);

            if (userEntity.UserNamePwd.Password != sha256String)
            {
                return(Tuple.Create(false, "密码错误", string.Empty));
            }
            if (!string.IsNullOrEmpty(loginModel.IP))
            {
                var loginLog = new UserAccountLoginLog
                {
                    UserAccountEntryId = userEntity.Id,
                    CreateTime         = DateTime.Now,
                    Id = Guid.NewGuid(),
                    IP = loginModel.IP
                };
                await userAccountAccessor.Add(loginLog);
            }


            return(Tuple.Create(true, "登录成功", userEntity.Id.ToString()));
        }
Beispiel #4
0
        public async Task <IActionResult> Login([FromBody] CaUserLoginModel caUserLoginModel)
        {
            var resultTuple = await userAccountBusiness.LoginUserNamePwd(caUserLoginModel);

            var apiMsg = new ApiMessage();

            if (resultTuple.Item1)
            {
                apiMsg.Message = resultTuple.Item2;
                HttpContext.Session.Set
                    (UserAccountBusiness.UserAccountSessionkey,
                    Encoding.UTF8.GetBytes(resultTuple.Item3));
                await HttpContext.Session.CommitAsync();
                await SetAuth(resultTuple.Item3);

                apiMsg.Data = resultTuple.Item3;
            }
            else
            {
                apiMsg.SetFault(resultTuple.Item2);
            }
            return(Json(apiMsg));
        }