Exemplo n.º 1
0
    protected void BtnLogin_Click(object sender, EventArgs e)
    {
        //PREGUNTA POR LOS DATOS DEL DROPDOWNLIST
        L_LogginUsr log = new L_LogginUsr();
        //LLAMO A LA FUNCION DE LOGICA QUE VALIDA EL LOGGIN
        U_aux_loggin respuesta = log.Loggin(DDL_TipoLog.SelectedValue, TB_Email.Text, TB_Pass.Text);

        Session["Sesion"]    = respuesta.Datos;
        Session["IdEmpresa"] = respuesta.Id_empresa;
        Modal(respuesta.Modal_message, respuesta.New_page);
    }
Exemplo n.º 2
0
        //Nuevo Logging Reingeniado XD
        public U_aux_loggin Loggin(String seleccion, String email, String pass)
        {
            if (seleccion == "0")
            {
                DataTable Empresa = this.Login(email, pass);

                if (Empresa.Rows.Count > 0)
                {
                    //Retornar Datos
                    U_aux_loggin aux_log = new U_aux_loggin();
                    aux_log.Datos = Empresa;
                    //La Variable Empresa Va A Session Al Igual Que Su ID
                    aux_log.New_page      = "PerfilEmpresa.aspx";
                    aux_log.Modal_message = "Acceso Concebido";
                    aux_log.Id_empresa    = Empresa.Rows[0]["idEmpresa"].ToString();
                    //actualizar sesion
                    DBEmpresa daoEmpresa = new DBEmpresa();
                    //DDAOEmpresa DB = new DDAOEmpresa();
                    int sess = int.Parse(Empresa.Rows[0]["Sesiones_Abiertas"].ToString());
                    if (int.Parse(Empresa.Rows[0]["intentos"].ToString()) >= 3)
                    {
                        aux_log.New_page      = "LoginUsr.aspx";
                        aux_log.Modal_message = "Has Excedido El Numero De Intentos De Loggin Intentalo A Las " + Empresa.Rows[0]["fin_bloqueo"].ToString();
                        aux_log.Datos         = null;
                        aux_log.Id_empresa    = null;
                        return(aux_log);
                    }
                    if (sess < 3)
                    {
                        //llamar db
                        UEUEmpresa emp = new UEUEmpresa();
                        emp.Id        = int.Parse(Empresa.Rows[0]["idEmpresa"].ToString());
                        emp.Sessiones = sess + 1;
                        Empresa.Rows[0]["Sesiones_Abiertas"] = emp.Sessiones;
                        daoEmpresa.update_session(emp);
                    }
                    else
                    {
                        aux_log.New_page      = "LoginUsr.aspx";
                        aux_log.Modal_message = "Has Excedido el numero de sesiones abiertas";
                        aux_log.Datos         = null;
                        aux_log.Id_empresa    = null;
                    }
                    return(aux_log);
                }
                else
                {
                    //Retornar Datos
                    U_aux_loggin aux_log = new U_aux_loggin();
                    aux_log.Modal_message = "La contraseña y/o el correo no coinciden.";
                    return(aux_log);
                }
            }
            else
            {
                //DDAOUsuario login = new DDAOUsuario();
                UEUsuario user   = new UEUsuario();
                DBUsr     db_usr = new DBUsr();
                user.PassUsr   = pass;
                user.CorreoUsr = email;
                //LOGGING ANTIGUO
                DataTable datos = db_usr.loggin_user(user);
                if (datos.Rows.Count > 0)
                {
                    if ((seleccion == "2") && (datos.Rows[0]["idTipo"].ToString() == "1"))
                    {
                        U_aux_loggin aux_log = new U_aux_loggin();
                        aux_log.Datos         = datos;
                        aux_log.Modal_message = "Bienvenido de nuevo administrador!";
                        aux_log.New_page      = "PrincipalAdministrador.aspx";
                        int sess = int.Parse(datos.Rows[0]["Sesiones_Abiertas"].ToString());
                        //actualizar sesion
                        if (sess < 1)
                        {
                            //llamar db
                            UEUsuario usr     = new UEUsuario();
                            DBUsr     daoUser = new DBUsr();
                            //DDAOUsuario db = new DDAOUsuario();
                            usr.IdUsr     = int.Parse(datos.Rows[0]["idUsuario"].ToString());
                            usr.Sessiones = sess + 1;
                            daoUser.update_session(usr);
                            //REVISAR EL ULTIMO REPORTE DE LA SESSION PARA ELIMINAR EL REGISTRO SIEMPRE Y CUANDO HAYA PASADO MUCHO TIEMPO
                            update_session_usr(datos.Rows[0]["idUsuario"].ToString());
                        }
                        else
                        {
                            //MODIFICAR ESTO EN CASO DE QUE EL REPORTE SEA DEMASIADO TARDIO
                            bool ayu = update_session_usr(datos.Rows[0]["idUsuario"].ToString());
                            if (ayu)
                            {
                                return(aux_log);
                            }
                            aux_log.New_page      = "LoginUsr.aspx";
                            aux_log.Modal_message = "Has Excedido el numero de sesiones abiertas";
                            aux_log.Datos         = null;
                            aux_log.Id_empresa    = null;
                        }

                        return(aux_log);
                    }
                    else if (int.Parse(datos.Rows[0]["estadoUsuario"].ToString()) == 0)
                    {
                        U_aux_loggin aux_log = new U_aux_loggin();
                        if (int.Parse(datos.Rows[0]["intentos"].ToString()) >= 3)
                        {
                            //NO LOGGUEAR
                            aux_log.New_page      = "LoginUsr.aspx";
                            aux_log.Modal_message = "Has Excedido el numero de intentos de logueo intentalo a las " + datos.Rows[0]["fin_bloqueo"];
                            aux_log.Datos         = null;
                            aux_log.Id_empresa    = null;
                            return(aux_log);
                        }
                        user.IdUsr            = int.Parse(datos.Rows[0]["idUsuario"].ToString());
                        aux_log.Modal_message = "Qué bueno que regreses!";
                        db_usr.bloquear_cuenta(user, 1, "");
                        datos            = db_usr.loggin_user(user);
                        aux_log.Datos    = datos;
                        aux_log.New_page = "Home.aspx";
                        int sess = int.Parse(datos.Rows[0]["Sesiones_Abiertas"].ToString());
                        //actualizar sesion
                        if (sess < 3)
                        {
                            //ACTUALIZAR LAS SESSIONES
                            update_session_usr(datos.Rows[0]["idUsuario"].ToString());
                            //llamar db
                            UEUsuario usr = new UEUsuario();
                            DBUsr     db  = new DBUsr();
                            //DDAOUsuario db = new DDAOUsuario();
                            usr.IdUsr     = int.Parse(datos.Rows[0]["idUsuario"].ToString());
                            usr.Sessiones = sess + 1;
                            db.update_session(usr);
                        }
                        else
                        {
                            //VERIFICAR SI LAS SESIONES AUN SON VALIDAS
                            bool ayu = update_session_usr(datos.Rows[0]["idUsuario"].ToString());
                            if (ayu)
                            {
                                return(aux_log);
                            }
                            aux_log.New_page      = "LoginUsr.aspx";
                            aux_log.Modal_message = "Has Excedido el numero de sesiones abiertas";
                            aux_log.Datos         = null;
                            aux_log.Id_empresa    = null;
                        }

                        return(aux_log);
                    }
                    else if (int.Parse(datos.Rows[0]["estadoUsuario"].ToString()) == 1 && datos.Rows[0]["idTipo"].ToString() == "3")
                    {
                        String test = datos.Rows[0]["idUsuario"].ToString();
                        if ((seleccion == "2") && (datos.Rows[0]["idTipo"].ToString() == "3"))
                        {
                            U_aux_loggin aux_log = new U_aux_loggin();
                            aux_log.Datos         = null;
                            aux_log.Modal_message = "Esta Ingresando Desde Un Rol Que No Le Corresponde";
                            aux_log.New_page      = "Home.aspx";
                            return(aux_log);
                        }
                        else
                        {
                            U_aux_loggin aux_log = new U_aux_loggin();
                            aux_log.Datos         = datos;
                            aux_log.Modal_message = "Bienvenido De Nuevo Es Un Placer Volver A Verte";
                            aux_log.New_page      = "Home.aspx";
                            int sess = int.Parse(datos.Rows[0]["Sesiones_Abiertas"].ToString());
                            if (int.Parse(datos.Rows[0]["intentos"].ToString()) >= 3)
                            {
                                //DEBO RETORNAR NULOS Y UN MENSAJE DE ERROR
                                aux_log.New_page      = "LoginUsr.aspx";
                                aux_log.Modal_message = "Tu Cuenta Ha Tenido Demasiados Intentos Erroneo Intentalo a Las " + datos.Rows[0]["fin_bloqueo"].ToString();
                                aux_log.Datos         = null;
                                aux_log.Id_empresa    = null;
                                return(aux_log);
                            }
                            //actualizar session
                            if (sess < 3)
                            {
                                //llamar db
                                UEUsuario usr = new UEUsuario();
                                DBUsr     db  = new DBUsr();
                                //DDAOUsuario db = new DDAOUsuario();
                                usr.IdUsr     = int.Parse(datos.Rows[0]["idUsuario"].ToString());
                                usr.Sessiones = sess + 1;
                                db.update_session(usr);
                                update_session_usr(datos.Rows[0]["idUsuario"].ToString());
                            }
                            else
                            {
                                bool ayu = update_session_usr(datos.Rows[0]["idUsuario"].ToString());
                                if (ayu)
                                {
                                    return(aux_log);
                                }
                                aux_log.New_page      = "LoginUsr.aspx";
                                aux_log.Modal_message = "Has Excedido el numero de sesiones abiertas";
                                aux_log.Datos         = null;
                                aux_log.Id_empresa    = null;
                            }

                            return(aux_log);
                        }
                    }
                    else
                    {
                        U_aux_loggin aux_log = new U_aux_loggin();
                        aux_log.Modal_message = "Estas bloqueado por un tiempo, regresa cuando acabe tu sansion.";
                        return(aux_log);
                    }
                }
                else
                {
                    DBUsr db = new DBUsr();
                    //DDAOUsuario db = new DDAOUsuario();
                    DataTable data = db.GET_USER(email);
                    if (data.Rows.Count > 0)
                    {
                        //AUMENTAR BLOQUEO
                        DateTime hora_incio = DateTime.Now;
                        DateTime hora_fin   = hora_incio.AddMinutes(30);
                        int      intentos   = int.Parse(data.Rows[0]["intentos"].ToString());
                        intentos = intentos + 1;
                        db.UPDATE_BLOQUEO(email, hora_incio, hora_fin, intentos);
                    }
                    U_aux_loggin aux_log = new U_aux_loggin();
                    aux_log.Modal_message = "La contraseña y/o el correo no coinciden.";
                    return(aux_log);
                }
            }
        }