Example #1
0
        /// <summary>
        /// Método que autentica al usuario con las credenciales ingresadas. Si se comprueban correctas, lo redirige a su pantalla de inicio (según su rol); sino, le permite un nuevo intento de corregir sus credenciales
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btn_login_Click(object sender, EventArgs e)
        {
            A_USUARIO u = new A_USUARIO();
            A_PERSONA p = new A_PERSONA();

            TB_PERSONA persona = p.getPersonaByCorreoE(txt_email.Text);     //Si las credenciales son correctas, se busca la información de la persona

            if (persona == null)
            {
                lbl_errors.Attributes.Remove("hidden");
                lbl_errors.Text = "Usuario o contraseña incorrectos";
                return;
            }

            TB_USUARIO usuario = u.getUsuarioByPersona(persona.ID_PERSONA);               //A partir de la persona se extrae el resto de la información del usuario

            //Verificando las credenciales
            if (!u.Autenticar(txt_email.Text, txt_password.Text))
            {
                lbl_errors.Attributes.Remove("hidden");
                lbl_errors.Text = "Usuario o contraseña incorrectos";
                return;
            }

            //Verificando el estado de la sesion
            int estado_sesion = u.getEstadoSesion(usuario.ID_USUARIO, Session.SessionID);

            //Tomando acciones segun resultado de la comprobacion:
            switch (estado_sesion)
            {
            case A_USUARIO.SESION_EXISTENTE_NO_EQUIVALENTE:
                //Sesion abierta, del que no es propietario. Preguntar si cerrar
                btn_restart_sesion.Visible = true;
                //btn_login.Visible = false;
                txt_password.Attributes.Remove("required");
                Session["old_email"] = txt_email.Text;
                return;

            case A_USUARIO.SESION_NO_EXISTENTE:
                //Sesion nueva
                u.updateUsuarioAsAutenticado(usuario.ID_USUARIO, Session.SessionID, true);
                redirigir(usuario.ID_USUARIO, usuario.ID_ROL);
                break;

            case A_USUARIO.SESION_EXISTENTE:
                //Sesion abierta, pero del que es propietario
                redirigir(usuario.ID_USUARIO, usuario.ID_ROL);
                break;
            }
        }
Example #2
0
        protected void btn_restart_sesion_Click(object sender, EventArgs e)
        {
            A_USUARIO u = new A_USUARIO();
            A_PERSONA p = new A_PERSONA();

            //Evitando el robo de sesion
            string email = txt_email.Text;

            //Si se ha habilitado el boton para cerrar la sesion anterior, la contrasena no sera requerida,
            //Pero si intenta iniciar sesion con otro usuario, la contrasena sera requerida
            if (!email.Equals(Session["old_email"]))
            {
                //Ocultando boton de cerrar sesion activa
                btn_restart_sesion.Visible = true;

                //Haciendo obligatoria la contrasena
                txt_password.Attributes.Add("required", "true");

                //Mostrando errores
                lbl_errors.Attributes.Remove("hidden");
                lbl_errors.Text = "Usuario o contraseña incorrectos";

                //Ocultando boton magico
                btn_restart_sesion.Visible = false;

                //Borrando la información de la Sesión
                Session.Remove("old_email");

                return;
            }

            //Borrando la información de la Sesión
            Session.Remove("old_email");

            TB_PERSONA persona = p.getPersonaByCorreoE(txt_email.Text);     //Si las credenciales son correctas, se busca la información de la persona

            TB_USUARIO usuario = u.getUsuarioByPersona(persona.ID_PERSONA); //A partir de la persona se extrae el resto de la información del usuario

            //Escribiendo en BD que se actualizara el ID de la sesion que usara el usuario
            u.updateUsuarioAsAutenticado(usuario.ID_USUARIO, Session.SessionID, true);

            //Redirigiendo hacia la pagina correspondiente del rol
            redirigir(usuario.ID_USUARIO, usuario.ID_ROL);
        }
        public void agregarUsuario()
        {
            try
            {
                A_USUARIO u = new A_USUARIO();
                A_PERSONA p = new A_PERSONA();

                var contrasena1 = Request.Form["txt_contrasena1"];
                var contrasena2 = Request.Form["txt_contrasena2"];

                if (string.IsNullOrWhiteSpace(contrasena1) || string.IsNullOrWhiteSpace(contrasena2) || !u.testContraseñas(contrasena1, contrasena2))
                {
                    errores = "Usuario no guardado. La contraseña no puede estar vacía ni contener solo espacios";
                    return;
                }

                if (contrasena1.Length < A_USUARIO.MAX_CARACTERES_CONTRASEÑA)
                {
                    errores = "La contraseña debe contener " + A_USUARIO.MAX_CARACTERES_CONTRASEÑA + " caractes o mas";
                    return;
                }

                //Construyendo a la persona
                TB_PERSONA persona = new TB_PERSONA();

                persona.NOMBRES   = Request.Form["txt_nombres"];
                persona.APELLIDOS = Request.Form["txt_apellidos"];
                persona.CORREO_E  = Request.Form["txt_correo"];
                persona.TEL_FIJO  = Request.Form["txt_telefono_fijo"];
                persona.TEL_FIJO  = Request.Form["txt_telefono_cel"];

                string municipio = Request.Form["sel_id_municipio"];

                persona.ID_MUNICIPIO = int.Parse(municipio);

                //Probando si el correo no fue registrado para otra persona antes:
                TB_PERSONA p_prueba = p.getPersonaByCorreoE(persona.CORREO_E);

                if (p_prueba != null)
                {
                    errores = "El correo electrónico ya está registrado";
                    return;
                }

                MV_Exception res = p.AlmacenarPersona(persona, ((MV_DetalleUsuario)Session["usuario"]).ID_USUARIO);

                if (res.IDENTITY == null)
                {
                    throw new Exception(res.ERROR_MESSAGE);
                }

                persona.ID_PERSONA = int.Parse(res.IDENTITY.ToString());

                //Construyendo al usuario
                TB_USUARIO usuario = new TB_USUARIO();

                usuario.NOMBRE_USUARIO = Request.Form["txt_nombre_usuario"];
                usuario.CONTRASENA     = Request.Form["txt_contrasena1"];
                usuario.ID_ROL         = int.Parse(Request.Form["sel_id_rol"]);
                usuario.NOMBRE_USUARIO = Request.Form["txt_nombre_usuario"];
                usuario.ID_PERSONA     = persona.ID_PERSONA;

                res = u.createUsuario(usuario, ((MV_DetalleUsuario)Session["usuario"]).ID_USUARIO);

                info = "Usuario agregado correctamente";
            }
            catch (Exception e)
            {
                errores = e.Message;
                H_LogErrorEXC.GuardarRegistroLogError(e);
            }
        }