/// <summary> /// 保存登陆状态 /// 为了和jwt保存同步 同用JwtRegisteredClaimNames.Jti /// </summary> /// <param name="jwtid"></param> /// <param name="user"></param> /// <param name="expires"></param> /// <param name="platform">0:web后台,1:app</param> /// <returns>当jwt标识登陆时返回string</returns> public string SignIn(string jwtid, Entities.sys_user user, DateTime expires, int platform = 0) { string userDataJson = JsonSerializer.Serialize(new UserData() { Id = user.id, Name = user.name, Account = user.account, IsAdmin = user.is_admin }); switch (platform) { case 0: List <Claim> claims = new List <Claim>() { new Claim(JwtRegisteredClaimNames.Jti, jwtid), new Claim(ClaimTypes.Sid, user.id), new Claim(ClaimTypes.UserData, userDataJson) }; ClaimsIdentity claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); ClaimsPrincipal claimsPrincipal = new ClaimsPrincipal(claimsIdentity); _httpContextAccessor.HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsPrincipal, new AuthenticationProperties() { ExpiresUtc = expires }); break; case 1: return(_jwtFactory.CreateToken(new User() { PrimarySid = platform, UserID = user.id, UserData = userDataJson, UserName = user.name }, jwtid, expires)); } return(null); }
/// <summary> /// 添加用户 /// </summary> /// <param name="user"></param> /// <returns></returns> public (bool Status, string Message) AddUser(Entities.sys_user user) { lock (addLock) { if (_dbContext.sys_user.Any(o => o.account == user.account && !o.is_deleted)) { return(Fail("用户账号已经存在")); } _dbContext.sys_user.Add(user); _dbContext.SaveChanges(); string newJson = JsonSerializer.Serialize(user); _activityLogService.InsertedEntity <Entities.sys_user>(user.id, null, newJson, user.creator); return(Success("添加成功")); } }