private LoginResult <SysClientUser> SignIn(string username, string password, bool isrememberme)
        {
            string loginIp = CommonUtils.GetIP();


            SysUserLoginHistory userLoginHistory = new SysUserLoginHistory();

            userLoginHistory.Ip = loginIp;
            //userLoginHistory.Country = ipInfo.Country;
            //userLoginHistory.Province = ipInfo.Province;
            //userLoginHistory.City = ipInfo.City;
            userLoginHistory.LoginType = Enumeration.LoginType.Computer;
            var identity = new AspNetIdentiyAuthorizeRelay <SysClientUser>(CurrentDb);

            var result = identity.Login(username, password, isrememberme, userLoginHistory);


            if (result.User != null)
            {
                ILog log = LogManager.GetLogger(CommonSetting.LoggerLoginWeb);
                log.Info(FormatUtils.LoginInWeb(result.User.Id, result.User.UserName));
            }

            return(result);
        }
Beispiel #2
0
        public LoginResult SignIn(string username, string password, string loginIp, Enumeration.LoginType loginType)
        {
            DateTime timeNow = DateTime.Now;

            IpInfo ipInfo = new IpInfo();
            SysUserLoginHistory loginHis = new SysUserLoginHistory();

            loginHis.LoginTime = timeNow;
            loginHis.Ip        = ipInfo.Ip;
            loginHis.Country   = ipInfo.Country;
            loginHis.Province  = ipInfo.Province;
            loginHis.City      = ipInfo.City;
            loginHis.LoginType = loginType;

            var result = _authorizeRelay.SignIn(username, password, timeNow, loginIp);

            switch (result.ResultTip)
            {
            case Enumeration.LoginResultTip.UserNotExist:
                loginHis.Description = "登录失败";
                loginHis.Result      = Enumeration.LoginResult.Failure;
                break;

            case Enumeration.LoginResultTip.UserAccessFailedMaxCount:
                loginHis.Description = "登录失败,连续输入错误密码3次,锁定帐号30分钟";
                loginHis.Result      = Enumeration.LoginResult.Failure;
                break;

            case Enumeration.LoginResultTip.UserPasswordIncorrect:
                loginHis.Description = "登录失败,密码错误";
                loginHis.Result      = Enumeration.LoginResult.Failure;
                loginHis.UserId      = result.User.Id;
                break;

            case Enumeration.LoginResultTip.UserDisabled:
                loginHis.Description = "登录失败,帐号被禁用";
                loginHis.Result      = Enumeration.LoginResult.Failure;
                loginHis.UserId      = result.User.Id;
                break;

            case Enumeration.LoginResultTip.UserDeleted:
                loginHis.Description = "登录失败,帐号已删除";
                loginHis.Result      = Enumeration.LoginResult.Failure;
                loginHis.UserId      = result.User.Id;
                break;

            case Enumeration.LoginResultTip.VerifyPass:
                loginHis.Description = "登录成功";
                loginHis.Result      = Enumeration.LoginResult.Success;
                loginHis.UserId      = result.User.Id;

                break;
            }

            CurrentDb.SysUserLoginHistory.Add(loginHis);
            CurrentDb.SaveChanges();


            return(result);
        }
Beispiel #3
0
        public LoginResult <TUser> Login(string userName, string password, bool isPersistent, SysUserLoginHistory userLoginHistory)
        {
            SysUserLoginHistory loginHis = new SysUserLoginHistory();

            userName = userName.Trim();
            var user = _userManager.FindByName <TUser, int>(userName);

            if (user == null)
            {
                return(new LoginResult <TUser>(Enumeration.LoginResult.Failure, Enumeration.LoginResultTip.UserNotExist));
            }

            var lastUserInfo = user;

            loginHis.UserId    = user.Id;
            loginHis.LoginTime = DateTime.Now;
            loginHis.LoginType = userLoginHistory.LoginType;
            loginHis.Ip        = userLoginHistory.Ip;
            loginHis.Country   = userLoginHistory.Country;
            loginHis.Province  = userLoginHistory.Province;
            loginHis.City      = userLoginHistory.City;

            user = _userManager.Find <TUser, int>(userName, password);



            if (user == null)
            {
                loginHis.Description = "Login failed, password error";
                loginHis.Result      = Enumeration.LoginResult.Failure;
                _db.SysUserLoginHistory.Add(loginHis);
                _db.SaveChanges();

                return(new LoginResult <TUser>(Enumeration.LoginResult.Failure, Enumeration.LoginResultTip.UserPasswordIncorrect, lastUserInfo));
            }

            if (user.IsDisable)
            {
                loginHis.Description = "Login failed, the account is disabled ";
                loginHis.Result      = Enumeration.LoginResult.Failure;
                _db.SysUserLoginHistory.Add(loginHis);
                _db.SaveChanges();

                return(new LoginResult <TUser>(Enumeration.LoginResult.Failure, Enumeration.LoginResultTip.UserDisabled, lastUserInfo));
            }

            if (user.IsDelete)
            {
                loginHis.Description = "Login failed, the account has been deleted ";
                loginHis.Result      = Enumeration.LoginResult.Failure;
                _db.SysUserLoginHistory.Add(loginHis);
                _db.SaveChanges();
                return(new LoginResult <TUser>(Enumeration.LoginResult.Failure, Enumeration.LoginResultTip.UserDeleted, lastUserInfo));
            }


            loginHis.Description = "Login success ";
            loginHis.Result      = Enumeration.LoginResult.Success;
            _db.SysUserLoginHistory.Add(loginHis);

            user.LastLoginTime = loginHis.LoginTime;
            user.LastLoginIp   = loginHis.Ip;

            _db.SaveChanges();

            AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
            var identity = _userManager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);

            AuthenticationManager.SignIn(new AuthenticationProperties()
            {
                IsPersistent = isPersistent
            }, identity);



            return(new LoginResult <TUser>(Enumeration.LoginResult.Success, Enumeration.LoginResultTip.VerifyPass, lastUserInfo));
        }