コード例 #1
0
ファイル: LoginController.cs プロジェクト: yunfan990/NetCore
        public async Task <IActionResult> UserLogin(AccountLoginEntity loginEntity)
        {
            var result = AccountService.UserLogin(loginEntity);

            if (result.Success)
            {
                var userIdentity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme);
                userIdentity.AddClaim(new Claim(ClaimTypes.Sid, result.Result.UserName));
                userIdentity.AddClaim(new Claim(ClaimTypes.Name, result.Result.UserName));
                userIdentity.AddClaim(new Claim(ClaimTypes.Role, result.Result.UserName));
                await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(userIdentity));

                //写入session
                CookieCredential cookieCredential = new CookieCredential
                {
                    UserName = result.Result.UserName,
                    Password = result.Result.Password
                };
                UserCredential.SetSession(cookieCredential);

                //if (returnUrl == null)
                //    returnUrl = TempData["returnUrl"]?.ToString();
                //登录成功-加载权限

                Logger.Info(string.Format("用户:{0}登录成功", result.Result.UserName));
            }
            return(Json(new ServiceResult <string> {
                Success = result.Success, ErrorMessage = result.ErrorMessage
            }));
        }
コード例 #2
0
        public ActionResult Login(AccountLoginEntity model)
        {
            if (ModelState.IsValid)
            {
                using (tradeadvisorEntities conexao = new tradeadvisorEntities())
                {
                    //AutenticaGoodData();
                    var user = conexao.usuarios.Where(c => c.tx_email == model.tx_email && c.tx_senha == model.tx_senha).FirstOrDefault();
                    if (user == null)
                    {
                        ModelState.AddModelError("", "Login ou senha inválidos!");
                        return View(model);
                    }

                    FormsAuthentication.SetAuthCookie(model.tx_email, true);

                    //Redirecionar no login
                    if (Url.IsLocalUrl(model.ReturnUrl))
                        return Redirect(model.ReturnUrl);
                    else
                        return RedirectToAction("Index", "Home");
                }
            }
            return View(model);
        }
コード例 #3
0
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="loginEntity"></param>
        /// <returns></returns>
        public ServiceResult <AccountEntity> UserLogin(AccountLoginEntity loginEntity)
        {
            var result = new ServiceResult <AccountEntity>();

            if (string.IsNullOrEmpty(loginEntity.UserName))
            {
                result.ErrorMessage = "账号为空";
                return(result);
            }

            if (string.IsNullOrEmpty(loginEntity.Password))
            {
                result.ErrorMessage = "密码为空";
                return(result);
            }

            if (loginEntity.Password.Length < 6 || loginEntity.Password.Length > 12)
            {
                result.ErrorMessage = "密码长度有误,请输入6-12位密码";
                return(result);
            }
            try
            {
                var model = BaseService.FindNoTracking(x => x.UserName == loginEntity.UserName);
                if (model != null)
                {
                    if (!EncryptPwd.CheckSaltPwd(model.Salt, loginEntity.Password, model.Password))
                    {
                        result.ErrorMessage = "用户名或密码有误";
                        return(result);
                    }
                    result.Result  = MapperService.Map <AccountEntity>(model);
                    result.Success = true;
                    return(result);
                }
            }
            catch (Exception ex)
            {
                Logger.ErrorFormat("异常:{0}", ex);
            }
            result.ErrorMessage = "用户名或密码有误";
            return(result);
        }