/// <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; } }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { A_ROL r = new A_ROL(); A_USUARIO u = new A_USUARIO(); if (Session["usuario"] == null) { Response.StatusCode = 403; Response.RedirectToRoute("Login"); return; } switch (u.getEstadoSesion(((MV_DetalleUsuario)Session["usuario"]).ID_USUARIO, Session.SessionID)) { case A_USUARIO.SESION_EXISTENTE: lbl_tipo_usuario.Text = r.getRolById(((MV_DetalleUsuario)Session["usuario"]).ID_ROL).NOMBRE; break; default: Response.StatusCode = 403; Response.RedirectToRoute("Login"); break; } // Buscando si el usuario está autorizado para acceder a la página solicitada var path = Request.Url.AbsolutePath; //Extrayendo URL if (!isAuthorized(path)) { Response.StatusCode = 403; Response.SuppressContent = true; Response.RedirectToRoute("Login"); } //Finalmente, si el usuario está autorizado, cargará sus notificaciones notificaciones = A_NOTIFICACION.ObtenerNotificacionesNuevas(((MV_DetalleUsuario)Session["usuario"]).ID_USUARIO); A_NOTIFICACION.ActualizarNotificacionesLeido(((MV_DetalleUsuario)Session["usuario"]).ID_USUARIO); } }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { btn_restart_sesion.Visible = false; txt_password.Attributes.Add("required", "true"); //Comprobando si no posee una sesion activa if (Session["usuario"] != null) { A_USUARIO u = new A_USUARIO(); //Verificando el estado de la sesion int estado_sesion = u.getEstadoSesion(((MV_DetalleUsuario)Session["usuario"]).ID_USUARIO, Session.SessionID); if (estado_sesion == A_USUARIO.SESION_EXISTENTE) { redirigir(((MV_DetalleUsuario)Session["usuario"]).ID_USUARIO, ((MV_DetalleUsuario)Session["usuario"]).ID_ROL); } } } }