示例#1
0
        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));
            }
        }