private void SignIn(AdministratorData userData) { var userPrincipal = new ClaimsPrincipal(new ClaimsIdentity(new List <Claim> { new Claim(ClaimTypes.NameIdentifier, userData.UserId), new Claim(ClaimTypes.Name, userData.UserName ?? ""), new Claim(ClaimTypes.UserData, userData.ToJson()) }, "Basic")); HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, userPrincipal, new AuthenticationProperties { ExpiresUtc = DateTime.UtcNow.AddDays(7), IsPersistent = true, AllowRefresh = true }); }
/// <summary> /// 创建JWT /// </summary> /// <param name="userData"></param> /// <returns></returns> private static string BuildJwt(AdministratorData userData) { var tokenHandler = new JwtSecurityTokenHandler(); var authTime = DateTime.UtcNow; var expiresAt = authTime.AddYears(1); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new List <Claim> { new Claim(JwtClaimTypes.Id, userData.UserId), new Claim(ConstString.JwtCompanyId, userData.CompanyId), new Claim(ConstString.KeyName, ConstString.KeyValue), new Claim(ClaimTypes.UserData, userData.ToJson()) }), Expires = expiresAt, SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(ConstString.AuthKey)), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); return(tokenHandler.WriteToken(token)); }