/// <summary> /// 使用通行证登录系统 /// </summary> /// <param name="loginName"></param> /// <param name="password"></param> /// <param name="passport">登陆成功以后返回实体</param> /// <returns></returns> private bool Login(string loginName, string password, out SYSPassport passport) { passport = null; if (string.IsNullOrEmpty(loginName) || string.IsNullOrEmpty(password)) { return(false); } //检查用户信息 passport = _passportRepository.Get(item => item.LoginName == loginName); if (passport.ID == null || passport.IsValid == false) { return(false); } //检查登录锁定 if (passport.CheckLock()) { return(false); } passport.UnLock(); //检查密码 if (passport.CheckPassword(password)) { passport.LastLoginTime = DateTime.Now; _passportRepository.Modify(passport); return(true); } passport.PasswordError(); _passportRepository.Modify(passport); return(false); }
/// <summary> /// 注册通行证 /// </summary> /// <param name="passport"></param> /// <returns></returns> /// <exception cref="BIStudio.Framework.DefinedException"></exception> public SYSPassport PassportRegist(SYSPassportRegistDTO passport) { if (string.IsNullOrEmpty(passport.LoginName) || !ALValidator.IsLengthStr(passport.LoginName, 4, 50) || !ALValidator.IsNormalChar(passport.LoginName)) { throw CFException.Create(SYSPassportRegistResult.LoginNameInvalid); } if (string.IsNullOrEmpty(passport.Password) || !ALValidator.IsLengthStr(passport.Password, 6, 16)) { throw CFException.Create(SYSPassportRegistResult.PasswordTooWeak); } if (string.IsNullOrEmpty(passport.RePassword) || passport.Password != passport.RePassword) { throw CFException.Create(SYSPassportRegistResult.RePasswordIncorrect); } if (string.IsNullOrEmpty(passport.Email) || !ALValidator.IsEmail(passport.Email)) { throw CFException.Create(SYSPassportRegistResult.EmailInvalid); } try { if (_passportRepository.Get(item => item.LoginName == passport.LoginName).ID != null) { throw CFException.Create(SYSPassportRegistResult.LoginNameAlreadyExists); } if (_passportRepository.Get(item => item.Email == passport.Email).ID != null) { throw CFException.Create(SYSPassportRegistResult.EmailAlreadyExists); } var now = DateTime.Now; var entity = new SYSPassport { LoginName = passport.LoginName, Email = passport.Email, Remarks = passport.Remarks, LastLoginTime = now, LastLoginError = 0, IsValid = true, IsLocked = false, Inputer = CFContext.User.UserName, InputerID = CFContext.User.ID, InputTime = now }; entity.Password = entity.ComputePassword(passport.LoginName, passport.Password); _passportRepository.Add(entity); return(entity); } catch (Exception ex) { throw CFException.Create(SYSPassportRegistResult.Fail, ex.Message, ex); } }