Exemplo n.º 1
0
        public Usuario GetUsuarioAutenticado(string login, string password)
        {
            Usuario resultado = new Usuario();

            resultado.Id = 0;

            string passwordHash = EncryptionService.MD5Hash(password);

            string connectionString = ConfigurationManager.AppSettings["ConnectionString"].ToString();
            Engine engine           = new Engine(connectionString);

            StringBuilder query = new StringBuilder();

            query.Append("select ");
            query.Append(" usuarios.id, usuarios.usuario, usuarios.nombres, usuarios.apellido1, usuarios.apellido2, usuarios.telefono, usuarios.email, usuarios.fechaBaja, usuarios.idperfilusuario  ");
            query.Append(" ,passwords.Password ");
            query.Append(" from usuarios ");
            query.Append(" inner join historicopasswords ");
            query.Append(" on usuarios.id = historicopasswords.idusuario ");
            query.Append(" inner join passwords ");
            query.Append(" on historicopasswords.id = passwords.idhistoricopassword ");
            query.Append(" where ");
            query.Append(" usuarios.Usuario = '" + login.ToLower().Trim() + "' ");

            DataTable table = engine.Query(query.ToString());

            if (table != null && table.Rows != null && table.Rows.Count > 0)
            {
                bool passwordVigente = false;
                foreach (DataRow fila in table.Rows)
                {
                    if (fila["fechabaja"].ToString().ToLower().Equals("") || fila["fechabaja"].ToString().ToLower().Equals("null"))
                    {
                        passwordVigente = true;

                        if (fila["Password"].ToString().Trim().Equals(passwordHash))
                        {
                            resultado.Id              = int.Parse(fila["Id"].ToString());
                            resultado.Nombres         = fila["Nombres"].ToString();
                            resultado.ApellidoPrimero = fila["Apellido1"].ToString();
                            resultado.ApellidoSegundo = fila["Apellido2"].ToString();
                            resultado.Login           = fila["Usuario"].ToString();
                            resultado.Email           = fila["Email"].ToString();
                            resultado.Telefono        = fila["Telefono"].ToString();

                            if (fila["idperfilusuario"].ToString().Equals(ConfigurationManager.AppSettings["idPerfilAdministrador"].ToString()))
                            {
                                resultado.PerfilKey = ConfigurationManager.AppSettings["adminKey"].ToString();
                            }

                            FotografiaService fotografiaService = new FotografiaService();
                            resultado.Fotografias = fotografiaService.ObtenerFotosUsuario(resultado.Id);

                            resultado.Token = CommonService.GenerarToken(resultado.Login, fila["idperfilusuario"].ToString());
                        }
                        else
                        {
                            resultado.IncidenciaUsuario = "Password incorrecto.";
                        }
                    }
                }

                if (!passwordVigente)
                {
                    resultado.IncidenciaUsuario = "La cuenta tiene contraseña caducada. Contactar con el administrador.";
                }
            }
            else
            {
                resultado.IncidenciaUsuario = "No se ha encontrado Usuario con ese nombre de login.";
            }

            return(resultado);
        }
Exemplo n.º 2
0
        public Usuario ReiniciarPassword(string email)
        {
            Usuario usuariorecuperar = GetUsuarioPorEmail(email);

            int resultado = 0;

            if (string.IsNullOrEmpty(usuariorecuperar.IncidenciaUsuario))
            {
                int    resultadoBajaActual     = BajaPasswordActual(usuariorecuperar.Id);
                int    idNuevoRegistroPassword = CrearRegistroPassword(usuariorecuperar.Id);
                string nuevoPassword           = GenerarTextPassword(8);

                string connectionString = ConfigurationManager.AppSettings["ConnectionString"].ToString();
                Engine engine           = new Engine(connectionString);

                StringBuilder comando = new StringBuilder();
                comando.Append("insert into passwords ");
                comando.Append(" (idhistoricopassword,password) ");
                comando.Append(string.Format(" values ({0},'{1}') ", idNuevoRegistroPassword, EncryptionService.MD5Hash(nuevoPassword)));

                resultado = engine.Execute(comando.ToString());

                if (resultado > 0)
                {
                    CommonService.EnviarCorreo(email, "Tu nueva contraseña es: " + nuevoPassword);
                }
            }


            return(usuariorecuperar);
        }