示例#1
0
        /// <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);
                        }
                    }
                }
            }
        }