Ejemplo n.º 1
0
        public async Task <IActionResult> On(OnModel model, bool remember, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            //var sessionImageCode = _distributedCache.GetString(ImageCodeHelper.SESSION_IMAGE_CODE);
            var sessionImageCode = HttpContext.Session.GetString(ImageCodeHelper.SESSION_IMAGE_CODE);

            model.ImageCode = ImageCodeHelper.CheckResult(model.ImageCode, sessionImageCode);
            if (model.ImageCode.ImageCodeError != ImageCodeError.NoError)
            {
                return(View(model));
            }

            var existUser = await _logService.GetUser(model.UserName);

            if (existUser != null && existUser.Password == _encrypt.Encrypt(model.Password))
            {
                await _logService.On(model, remember);

                return(ReturnUrlHelper.ReturnUrl(returnUrl));
            }

            TempData["ModelState"] = "* 用户名或密码错误";
            return(View(model));
        }
Ejemplo n.º 2
0
        public OnModel OGetByName(string UserName)
        {
            User    userInfo = userRepository.GetByName(UserName);
            OnModel model    = mapper.Map <OnModel>(userInfo);

            return(model);
        }
Ejemplo n.º 3
0
        public ActionResult On(OnModel model)
        {
            if (model.Captcha != Session[Keys.CAPTCHA].ToString())
            {
                return(View(model));
            }


            OnModel result = userService.OGetByName(model.Name);

            if (result == null)
            {
                ModelState.AddModelError(Keys.Name, "*输入的用户名不存在");
                return(View());
            }
            if (result.Password != model.Password)
            {
                ModelState.AddModelError(Keys.Password, "用户名或密码错误");
                return(View());
            }
            //添加cookie
            CookieHelper.addCookie(result.Id, result.Password, result.RemberMe);
            if (Request.QueryString[Keys.Prepage] == null)
            {
                return(View("/Home"));
            }
            return(RedirectToAction(nameof(On)));
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> Put(OnModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(ModelState.ValidationState));
            }

            var sessionImageCode = HttpContext.Session.GetString(ImageCodeHelper.SESSION_IMAGE_CODE);

            model.ImageCode = ImageCodeHelper.CheckResult(model.ImageCode, sessionImageCode);
            if (model.ImageCode.ImageCodeError != ImageCodeError.NoError)
            {
                return(Json(new RequestResult
                {
                    State = RequestState.Failed,
                    Msg = "ÑéÖ¤Âë´íÎó!"
                }));
            }

            var existUser = await _logService.GetUser(model.UserName);

            if ((existUser != null) && (existUser.Password == _encrypt.Encrypt(model.Password)))
            {
                var requestAt = DateTime.Now;
                var expiresIn = requestAt + TokenAuthOption.ExpiresSpan;
                var token     = GenerateToken(existUser, expiresIn);

                return(Json(new RequestResult
                {
                    State = RequestState.Success,
                    Data = new
                    {
                        requertAt = requestAt,
                        expiresIn = TokenAuthOption.ExpiresSpan.TotalSeconds,
                        tokeyType = TokenAuthOption.TokenType,
                        accessToken = token
                    }
                }));
            }
            else
            {
                return(Json(new RequestResult
                {
                    State = RequestState.Failed,
                    Msg = "Óû§Ãû»òÃÜÂë´íÎó!"
                }));
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="model"></param>
        /// <param name="remember"></param>
        /// <returns></returns>
        public async Task On(OnModel model, bool remember)
        {
            var httpcontext = _httpContextAccessor.HttpContext;
            var user        = await _context.Users.AsNoTracking().SingleOrDefaultAsync(x => x.Name == model.UserName);

            var claimsIdentity = new ClaimsIdentity(new[] { new Claim(ClaimTypes.SerialNumber, user.Id), new Claim(ClaimTypes.Name, user.Name), new Claim(ClaimTypes.NameIdentifier, user.AuthCode), new Claim(ClaimTypes.Role, user.Role.ToString()) }, CookieAuthenticationDefaults.AuthenticationScheme);
            var principal      = new ClaimsPrincipal(claimsIdentity);
            await httpcontext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal, new AuthenticationProperties
            {
                ExpiresUtc   = DateTime.UtcNow.AddHours(24),
                IsPersistent = true,
                AllowRefresh = false
            });

            //await _signInManager.PasswordSignInAsync(model.UserName, model.Password,false, lockoutOnFailure: false);

            //int? days = remember ? 1 : (int?)null;
            //SetUserCookie(user, days);
        }
Ejemplo n.º 6
0
 public Task On(OnModel model, bool remember)
 {
     throw new System.NotImplementedException();
 }
Ejemplo n.º 7
0
 public void On(OnModel model, IHttpContextAccessor httpContextAccessor)
 {
     httpContextAccessor.HttpContext.Response.Cookies.Append("user", model.UserName);
 }