コード例 #1
0
        public Myuser getMyuser()
        {
            Myuser myuser = _helperSer.GetSession <Myuser>("login_code");

            if (myuser == null)
            {
                myuser          = new Myuser();
                myuser.UserGUID = new Guid(MyHttpContext.Current.User.Claims.SingleOrDefault(s => s.Type == ClaimTypes.NameIdentifier).Value);
                myuser.UserCode = MyHttpContext.Current.User.Claims.SingleOrDefault(s => s.Type == ClaimTypes.Sid).Value;
                myuser.UserName = MyHttpContext.Current.User.Claims.SingleOrDefault(s => s.Type == ClaimTypes.Name).Value;
            }
            return(myuser);
        }
コード例 #2
0
ファイル: HomeController.cs プロジェクト: FishLiuWei/Dotnet
        public JsonResult dologin(Myuser myuser)
        {
            ResultModel result = new ResultModel();
            int         i      = (HttpContext.Session.GetInt32("ErrorCount") ?? 0);

            if (i >= 3)
            {
                string code = HttpContext.Session.GetString("LoginValidateCode").ToLower();
                if (code != myuser.Verifycode.ToLower().Trim())
                {
                    result.State      = 2;
                    result.Message    = "验证码输入错误!";
                    result.IfValidate = true;
                    return(Json(result));
                }
            }
            result = MyuserBll.Login(myuser.UserCode, myuser.UserPassword, myuser).Result;
            if (result.State == 1)
            {
                HttpContext.Session.SetInt32("ErrorCount", ++i);
                if (i > 2)
                {
                    result.IfValidate = true;
                }
                else
                {
                    result.IfValidate = false;
                }
            }

            if (result.State == 0)
            {
                HttpContext.Session.Remove("LoginValidateCode");
                HttpContext.Session.Remove("ErrorCount");
                CommonUI.SaveUser(myuser, true);
                string returnUrl = TempData["returnUrl"]?.ToString();
                if (returnUrl != null)
                {
                    Redirect(returnUrl);
                }
                else
                {
                    RedirectToAction(nameof(HomeController.Index), "Home");
                }
            }
            return(Json(result));
        }
コード例 #3
0
        public bool SaveCookie(string strCookeName, Myuser myuser, int intTimeDayOut)
        {
            if (myuser == null)
            {
                return(false);
            }
            ClaimsIdentity identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme);

            identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, myuser.UserGUID.ToString()));
            identity.AddClaim(new Claim(ClaimTypes.Sid, myuser.UserCode));
            identity.AddClaim(new Claim(ClaimTypes.Name, myuser.UserName));
            ClaimsPrincipal principal = new ClaimsPrincipal(identity);

            MyHttpContext.Current.SignInAsync(
                strCookeName,
                principal,
                new AuthenticationProperties
            {
                ExpiresUtc = DateTime.UtcNow.AddMinutes(intTimeDayOut)
            });
            return(true);
        }
コード例 #4
0
ファイル: MyuserBllSer.cs プロジェクト: FishLiuWei/Dotnet
        public async Task <ResultModel> Login(string UserCode, string Password, Myuser myuser)
        {
            ResultModel result = new ResultModel();
            Myuser      user   = null;

            try
            {
                user = await _dbContext.Myusers
                       .FirstOrDefaultAsync(m => m.UserCode == UserCode);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            if (user == null || user.UserGUID == Guid.Empty)
            {
                result.State   = 1;
                result.Message = "该用户不存在!";
            }
            else if (user.IsForbidden == 1)
            {
                result.State   = 1;
                result.Message = "该用户已被停用,请与管理员联系!";
            }
            else if (Password != _getHelper.AESDecrypt(user.UserPassword, user.UserGUID.ToString("N")))
            {
                result.State   = 1;
                result.Message = "密码错误!";
            }
            else
            {
                result.State    = 0;
                result.Message  = "登录成功!";
                myuser.UserGUID = user.UserGUID;
                myuser.UserName = user.UserName;
            }
            return(result);
        }
コード例 #5
0
 public void SaveUser(Myuser user, bool remember)
 {
     _helperSer.SetSession("login_code", user);
     _helperSer.SaveCookie(CookieAuthenticationDefaults.AuthenticationScheme, user, 20);
 }