/// <summary> /// 登录处理 /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task <LoginResultModel> Handle(UserNameLoginModel model) { var resultModel = new LoginResultModel { LoginMode = LoginMode.UserName, UserName = model.UserName, Platform = model.Platform, LoginTime = DateTime.Now, AccountType = model.AccountType }; //解析租户编号 await ResolveTenant(resultModel); //检测 var checkResult = await Check(model, resultModel); if (checkResult.Successful) { resultModel.Success = true; //更新认证信息并返回登录结果 await UpdateAuthInfo(resultModel, model); } else { resultModel.Success = false; resultModel.Error = checkResult.Msg; } //记录日志 await SaveLog(resultModel); return(resultModel); }
public async Task <IResultModel> Login(UserNameLoginModel model) { model.IP = _ipHelper.IP; model.UserAgent = _ipHelper.UserAgent; var result = await _service.Login(model); return(LoginHandle(result)); }
/// <summary> /// 登录处理 /// </summary> private async Task <ResultModel <LoginResultModel> > Handle(UserNameLoginModel model, LoginLogEntity log) { var result = new ResultModel <LoginResultModel>(); var config = _configProvider.Get <AuthConfig>(); if (!config.LoginMode.UserName) { return(result.Failed("不允许使用用户名的登录方式")); } //检测验证码 var verifyCodeCheckResult = _verifyCodeProvider.Check(model); if (!verifyCodeCheckResult.Successful) { return(result.Failed(verifyCodeCheckResult.Msg)); } //查询账户 var account = await _repository.GetByUserName(model.UserName, model.AccountType); if (account == null) { return(result.Failed("账户不存在")); } if (log != null) { log.AccountId = account.Id; } //检测密码 var password = _passwordHandler.Encrypt(account.UserName, model.Password); if (!account.Password.Equals(password)) { return(result.Failed("密码错误")); } //检测账户 var accountCheckResult = account.Check(); if (!accountCheckResult.Successful) { return(result.Failed(accountCheckResult.Msg)); } //更新认证信息并返回登录结果 var resultModel = await UpdateAuthInfo(account, model, config); return(resultModel != null?result.Success(resultModel) : result.Failed()); }
/// <summary> /// 登录处理 /// </summary> private async Task <IResultModel> Check(UserNameLoginModel model, LoginResultModel resultModel) { var config = _configProvider.Get <AuthConfig>(); if (!config.LoginMode.UserName) { return(ResultModel.Failed("不允许使用用户名的登录方式")); } //检测验证码 var verifyCodeCheckResult = _verifyCodeProvider.Check(model); if (!verifyCodeCheckResult.Successful) { return(ResultModel.Failed(verifyCodeCheckResult.Msg)); } //查询账户 var account = await _repository.GetByUserName(model.UserName, model.AccountType, resultModel.TenantId); if (account == null) { return(ResultModel.Failed("账户不存在")); } //设置账户编号和名称 resultModel.AccountId = account.Id; resultModel.Name = account.Name; //检测密码 var password = _passwordHandler.Encrypt(account.UserName, model.Password); if (!account.Password.Equals(password)) { return(ResultModel.Failed("密码错误")); } //检测账户 var accountCheckResult = account.Check(); if (!accountCheckResult.Successful) { return(ResultModel.Failed(accountCheckResult.Msg)); } return(ResultModel.Success()); }
/// <summary> /// 登录处理 /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task <ResultModel <LoginResultModel> > Handle(UserNameLoginModel model) { var log = CreateLog(model); if (log == null) { return(await Handle(model, null)); } log.LoginMode = Domain.LoginLog.LoginMode.UserName; log.UserName = model.UserName; var result = await Handle(model, log); await SaveLog(log, result); return(result); }
/// <summary> /// 用户名登录 /// </summary> /// <param name="model"></param> /// <returns></returns> public Task <ResultModel <LoginResultModel> > Login(UserNameLoginModel model) { return(_userNameLoginHandler.Handle(model)); }