public JsonResult Edit(UsuarioDto usuarioDto) { var response = new JsonResponse {Success = false}; var entityTemp = _usuarioBl.Get( p => p.UserName == usuarioDto.UserName && p.Id != usuarioDto.Id && p.Estado == (int)TipoEstado.Activo); if (entityTemp == null) { var usuarioDomain = _usuarioBl.GetById(usuarioDto.Id); //UsuarioConverter.DtoToDomain(usuarioDomain, usuarioDto); _usuarioBl.Update(usuarioDomain); response.Message = "Se actualizó el usuario correctamente"; response.Success = true; } else { response.Message = "Ya existe el nombre de usuario"; response.Success = false; } return Json(response, JsonRequestBehavior.AllowGet); }
public IActionResult Autenticar(UsuarioRequestDto usuario) { if (string.IsNullOrEmpty(usuario.Nombre) || string.IsNullOrEmpty(usuario.Contrasena)) { return(StatusCode(StatusCodes.Status400BadRequest, "El nombre de usuario y contraseña son obligatorios.")); } try { var user = _usuarioBL.Get(usuario); if (user == null) { return(StatusCode(StatusCodes.Status400BadRequest, "Credenciales no válidas.")); } var claims = new[] { new Claim(JwtRegisteredClaimNames.Sub, _configuration["Jwt:Subject"]), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()), new Claim(JwtRegisteredClaimNames.Iat, DateTime.UtcNow.ToString()), new Claim("Id", user.UsuarioId.ToString()), new Claim("Nombre", user.Nombre), new Claim("Rol", user.Rol) }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["Jwt:Key"])); var signIn = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var issuer = _configuration["Jwt:Issuer"]; var audience = _configuration["Jwt:Audience"]; var token = new JwtSecurityToken(issuer, audience, claims, expires: DateTime.UtcNow.AddDays(1), signingCredentials: signIn); var result = new JwtSecurityTokenHandler().WriteToken(token); return(Ok(result)); } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } }