/// <summary> /// 生成登录结果 /// </summary> /// <param name="user"></param> /// <param name="tenant"></param> /// <returns></returns> protected virtual async Task <LoginResult> CreateLoginResultAsync(User user, Tenant tenant = null) { if (tenant != null && !tenant.IsActive) { return(new LoginResult(LoginResultType.TenantIsNotActive, tenant)); } //if (!user.IsActive) //{ // return new LoginResult(LoginResultType.UserIsNotActive, tenant); //} //是否是第一次登录 if (user.LastLoginTime == null) { user.IsFirstLogin = true; } else { user.IsFirstLogin = false; } user.LastLoginTime = Clock.Now; user.AccessFailedCount = 0; user.LockoutEndDate = null; await GetUserManager().UpdateAsync(user); await UnitOfWorkManager.Current.SaveChangesAsync(); var principal = await ClaimsPrincipalCreator.CreateClaimsPrincipal(user); return(new LoginResult( tenant, user, principal.Identity as ClaimsIdentity )); }
/// <summary> /// 生成登录结果 /// </summary> /// <param name="user"></param> /// <param name="tenant"></param> /// <returns></returns> protected virtual async Task <LoginResult> CreateLoginResultAsync(User user, Tenant tenant = null) { if (tenant != null && !tenant.IsActive) { return(new LoginResult(LoginResultType.TenantIsNotActive, tenant)); } if (!user.IsActive) { return(new LoginResult(LoginResultType.UserIsNotActive, tenant)); } user.LastLoginTime = Clock.Now; await GetUserManager().UpdateAsync(user); await UnitOfWorkManager.Current.SaveChangesAsync(); var principal = await ClaimsPrincipalCreator.CreateClaimsPrincipal(user); return(new LoginResult( tenant, user, principal.Identity as ClaimsIdentity )); }