public static string GenerateTokenJwt(Cliente cliente, string secretKey, string audienceToken, string issuerToken, string expireTime, Mapeo _context) { //TODO: appsetting for Demo JWT - protect correctly this settings var securityKey = new SymmetricSecurityKey(System.Text.Encoding.Default.GetBytes(secretKey)); var signingCredentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256Signature); // create a claimsIdentity ClaimsIdentity claimsIdentity = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, cliente.Usuario), new Claim(ClaimTypes.Role, cliente.Rol.ToString()) }); // create token to the user var tokenHandler = new System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler(); //Se crea objeto que tiene el estandar JWT var jwtSecurityToken = tokenHandler.CreateJwtSecurityToken( audience: audienceToken, issuer: issuerToken, subject: claimsIdentity, notBefore: DateTime.Now, //fecha de creación del token expires: DateTime.Now.AddMinutes(Convert.ToInt32(expireTime)), //fecha de expiración de token signingCredentials: signingCredentials); var jwtTokenString = tokenHandler.WriteToken(jwtSecurityToken); ClienteTokenLogin token = new ClienteTokenLogin(); token.FechaGenerado = DateTime.Now; token.FechaVigencia = DateTime.Now.AddMinutes(Convert.ToInt32(expireTime)); token.IdCliente = cliente.IdCliente; token.Token = jwtTokenString; new LCliente(_context).guardarToken(token); return(jwtTokenString); }
//Guarda token de login (S) public async Task almacenarTokenLogin(ClienteTokenLogin token) { using (var db = new MapeoCliente()) { db.tokenLogin.Add(token); await db.SaveChangesAsync(); } }
//Guarda token de login (S) public async Task almacenarTokenLogin(ClienteTokenLogin token) { using (var db = _context) { db.tokenLoginCl.Add(token); await db.SaveChangesAsync(); } }
//Elimina token al eliminar cuenta y cerrar sesion (S) public async Task eliminarToken(ClienteTokenLogin token) { using (var db = new MapeoCliente()) { ClienteTokenLogin tokenC = db.tokenLogin.Where(x => x.IdCliente == token.IdCliente).FirstOrDefault(); db.tokenLogin.Remove(tokenC); await db.SaveChangesAsync(); } }
//Elimina token al eliminar cuenta y cerrar sesion (S) public async Task eliminarToken(ClienteTokenLogin token) { using (var db = _context) { ClienteTokenLogin tokenC = db.tokenLoginCl.Where(x => x.IdCliente == token.IdCliente).First(); db.tokenLoginCl.Remove(tokenC); await db.SaveChangesAsync(); } }
public async Task <ActionResult> delEliminarToken(string usuario) { Cliente cliente = new LCliente(_context).mostrarDatosLogin(usuario); int idCliente = cliente.IdCliente; ClienteTokenLogin token = new ClienteTokenLogin(); token.IdCliente = idCliente; await new LEliminarCliente(_context).eliminarToken(token); return(Ok("El token fue eliminado")); }
public async Task <IHttpActionResult> delEliminarToken(string usuario) { try { Cliente cliente = new LCliente().mostrarDatosLogin(usuario); int idCliente = cliente.IdCliente; ClienteTokenLogin token = new ClienteTokenLogin(); token.IdCliente = idCliente; await new LEliminarCliente().eliminarToken(token); return(Ok("El token fue eliminado")); }catch (Exception ex) { return(BadRequest("el usuario no existe")); } }
public static string GenerateTokenJwt(Cliente cliente) { //TODO: appsetting for Demo JWT - protect correctly this settings //Llaves para permitir manipulación o cambios var secretKey = ConfigurationManager.AppSettings["JWT_SECRET_KEY"]; var audienceToken = ConfigurationManager.AppSettings["JWT_AUDIENCE_TOKEN"]; var issuerToken = ConfigurationManager.AppSettings["JWT_ISSUER_TOKEN"]; var expireTime = ConfigurationManager.AppSettings["JWT_EXPIRE_MINUTES"]; var securityKey = new SymmetricSecurityKey(System.Text.Encoding.Default.GetBytes(secretKey)); var signingCredentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256Signature); // create a claimsIdentity ClaimsIdentity claimsIdentity = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, cliente.Usuario), new Claim(ClaimTypes.Role, cliente.Rol.ToString()) }); // create token to the user var tokenHandler = new System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler(); //Se crea objeto que tiene el estandar JWT var jwtSecurityToken = tokenHandler.CreateJwtSecurityToken( audience: audienceToken, issuer: issuerToken, subject: claimsIdentity, notBefore: DateTime.Now, //fecha de creación del token expires: DateTime.Now.AddMinutes(Convert.ToInt32(expireTime)), //fecha de expiración de token signingCredentials: signingCredentials); var jwtTokenString = tokenHandler.WriteToken(jwtSecurityToken); ClienteTokenLogin token = new ClienteTokenLogin(); token.FechaGenerado = DateTime.Now; token.FechaVigencia = DateTime.Now.AddMinutes(Convert.ToInt32(expireTime)); token.IdCliente = cliente.IdCliente; token.Token = jwtTokenString; new LCliente().guardarToken(token); return(jwtTokenString); }
public async Task eliminarToken(ClienteTokenLogin token) //S { await new DaoCliente(_context).eliminarToken(token); }
public async Task guardarToken(ClienteTokenLogin token) //S { await new DaoSeguridadCliente(_context).almacenarTokenLogin(token); }