/// <summary> /// Evento Generado al hacer click en cualquier link Opciones /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void OnClick_MenuOpciones(object sender, EventArgs e) { //Referenciamos al objeto que disparo el evento LinkButton boton = (LinkButton)sender; //De acuerdo al nombre de comando switch (boton.CommandName) { //Cerramos Sesion case "CerrarSesion": //Declaramos Objeto Resultante RetornoOperacion resultado = new RetornoOperacion(); //Instanciamos la Sesion del Usuario using (UsuarioSesion objUsuarioSesion = ((UsuarioSesion)Session["usuario_sesion"])) { //Validamos que exista Sesion if (objUsuarioSesion.id_usuario_sesion > 0) { //Cerramos Sesion en BD resultado = objUsuarioSesion.TerminarSesion(); //Si se Termino la Sesión correctamnete if (resultado.OperacionExitosa) { //Cerramos Session Sesion.CierraSesionActual(FormsAuthentication.LoginUrl); } } } break; case "CambiaContrasena": { //Validando que exista un Evento if (ClickCambiarContrasena != null) { //Iniciando Manejador OnClickCambiarContrasena(e); } break; } case "CambiaPerfil": { //Validando que exista un Evento if (ClickCambiaPerfil != null) { //Iniciando Manejador OnClickCambiaPerfil(e); } break; } } }
/// <summary> /// Método encargado de Finalizar la Sesión de un Usuario /// </summary> /// <param name="id_usuario_sesion">Sesión de un Usuario</param> /// <returns></returns> public string FinalizaSesion(int id_usuario_sesion) { //Declarando objeto de retorno RetornoOperacion result = new RetornoOperacion(); //Instanciamos la Sesion del Usuario using (UsuarioSesion objUsuarioSesion = new UsuarioSesion(id_usuario_sesion)) { //Validamos que exista Sesion if (objUsuarioSesion.id_usuario_sesion > 0) { //Cerramos Sesion en BD result = objUsuarioSesion.TerminarSesion(); } } //Devolviendo Resultado Obtenido return(result.ToXMLString()); }
/// <summary> /// Validamos Si la Sesión se encuentra activa /// </summary> private void validaSesionActiva() { //Verificando que exista una sesión de BD en la sesión de ASP if (Session["usuario_sesion"] == null) { //Recuperando la cookie HttpCookie c = Request.Cookies.Get("Login"); //Instanciando al usuario sesión para cerrar la sesión using (UsuarioSesion objUsuarioSesion = new UsuarioSesion(Convert.ToInt32(c["ID"]))) { //Validamos que exista Sesion if (objUsuarioSesion.id_usuario_sesion > 0) { //Cerramos Sesion BD objUsuarioSesion.TerminarSesion(); } } //Cerramos Session desde asp.net Sesion.CierraSesionActual(FormsAuthentication.LoginUrl); } else { //Instanciamos Usuario Sesion using (UsuarioSesion objUsuarioSesion = (UsuarioSesion)Session["usuario_sesion"]) { //Refresca Atributos if (objUsuarioSesion.ActualizaUsuarioSesion()) { //Validando si la sesión ha finalizado if (objUsuarioSesion.EstatusSesion == UsuarioSesion.Estatus.Activo) { //Referenciando al usuario de la sesión actual using (Usuario u = (Usuario)Session["usuario"]) { //Actualziando información desde BD if (u.ActualizaAtributos()) { //Validando posible cambio de contraseña no reflejado en esta sesión if (u.fecha_contrasena < objUsuarioSesion.ultima_actividad) { //Actualizamos Ultima Actividad objUsuarioSesion.ActualizaUltimaActividad(); } //Si la contraseña se modificó else { //Direccionando a página de inicio Sesion.CierraSesionActual(FormsAuthentication.LoginUrl); } } } } else { //Direccionando a página de inicio Sesion.CierraSesionActual(FormsAuthentication.LoginUrl); } } } } }