public ServicioSesion() { AplicationID = Guid.NewGuid(); ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidarCertificado); _clientHttpToken.BaseAddress = new Uri("https://localhost:44361/"); _clientHttpToken.DefaultRequestHeaders.Accept.Clear(); _clientHttpToken.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); _clientHttpPermsos.BaseAddress = new Uri("https://localhost:44361/"); _clientHttpPermsos.DefaultRequestHeaders.Accept.Clear(); _clientHttpPermsos.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); UsuarioSesion = new UsuarioSesionDTO(); Task.Run(() => WatchDogServer()); }
//"the secret that needs to be at least 16 characeters long for HmacSha256" public static string GenerateToken(UsuarioSesionDTO usuario, string hostName, Guid aplicactionID) { var claims = new Claim[] { new Claim(ClaimTypes.Name, usuario.CodigoUsuario), new Claim(nameof(TokenClaimNames.PkUsuario), usuario.CodigoUsuario), new Claim(nameof(TokenClaimNames.HostName), hostName), new Claim(nameof(TokenClaimNames.AplicationID), aplicactionID.ToString()), new Claim(JwtRegisteredClaimNames.Nbf, new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds().ToString()), new Claim(JwtRegisteredClaimNames.Exp, new DateTimeOffset(DateTime.Now.AddMinutes(1)).ToUnixTimeSeconds().ToString()), }; var token = new JwtSecurityToken( new JwtHeader(new SigningCredentials( new SymmetricSecurityKey(Encoding.UTF8.GetBytes(TokenSecurityKey)), SecurityAlgorithms.HmacSha256)), new JwtPayload(claims)); return(new JwtSecurityTokenHandler().WriteToken(token)); }