예제 #1
0
        private static Usuario BuildUsuario(IDataReader reader)
        {
            Usuario  usuario            = null;
            string   userName           = reader["UserName"].ToString();
            string   nombre             = reader["Nombre"].ToString();
            string   apellido           = reader["Apellido"].ToString();
            string   email              = reader["Email"].ToString();
            string   sexo               = reader["Sexo"].ToString();
            DateTime fechaNacimiento    = (DateTime)reader["FechaNacimiento"];
            string   domicilio          = reader["Domicilio"].ToString();
            string   telefonoParticular = reader["TelefonoParticular"].ToString();
            string   telefonoCelular    = reader["TelefonoCelular"].ToString();
            object   guid               = reader["FotoGUID"];
            Guid     fotoGUID           = guid == null || guid.ToString() == string.Empty ? Guid.Empty : new Guid(guid.ToString());


            bool   esMiembro         = (bool)reader["EsMiembro"];
            bool   habilitado        = (bool)reader["Habilitado"];
            int    idMiembro         = (int)reader["IdMiembro"];
            bool   pendiente         = (bool)reader["Pendiente"];
            string encriptedPassword = (string)reader["Password"];
            string password          = EncriptadorHelper.Decrypt(encriptedPassword);



            usuario = new Usuario(userName, password, nombre, apellido, email, sexo, fechaNacimiento, domicilio,
                                  telefonoParticular, telefonoCelular, esMiembro, idMiembro, new List <Role>(), new List <Operacion>(), pendiente, habilitado);
            usuario.EncriptedPassword = encriptedPassword;


            usuario.FotoGUID = fotoGUID;
            return(usuario);
        }
예제 #2
0
        public IActionResult PedirToken(
            [FromBody] PedirTokenRequest request)
        {
            Usuario usuario =
                _usuarioService.RecuperarPorCorreo(request.codigo);

            //Validar que haya recuperado
            if (usuario == null)
            {
                return(BadRequest("Usuario invalido: correo"));
            }

            //Validar la clave
            if (EncriptadorHelper.Decrypt(usuario.Password) != request.clave)
            {
                return(BadRequest("Usuario invalido: clave"));
            }

            //Metadata para el token
            Claim[] misClaims = new[] {
                new Claim("correo", usuario.Email),
                new Claim("id", usuario.IdUsuario.ToString())
            };
            //Generar el JWT  JwtSecurityToken

            var cred = new SymmetricSecurityKey(
                Encoding.UTF8.GetBytes(
                    Configuration["SemillaJWT"]
                    ));

            var firma = new SigningCredentials(cred, SecurityAlgorithms.HmacSha256);

            JwtSecurityToken jwt = new JwtSecurityToken(
                issuer: "midominio.com",
                audience: "midominio.com",
                claims: misClaims,
                expires: DateTime.Now.AddMinutes(5),
                signingCredentials: firma
                );

            //Devolver el hash
            string ruta = new JwtSecurityTokenHandler().WriteToken(jwt);

            return(Ok(
                       new {
                usuario = usuario,
                token = ruta
            }
                       ));
        }