예제 #1
0
파일: Usuario.svc.cs 프로젝트: lulzzz/SAT
        /// <summary>
        /// Método encargado de Actualizar la Ultima Actividad del Usuario
        /// </summary>
        /// <param name="id_usuario_sesion">Sesión Activa</param>
        /// <param name="direccion_mac">Dirección MAC</param>
        /// <param name="nombre_dispositivo">Nombre del Dispositivo</param>
        /// <returns></returns>
        public string ActualizaUltimaActividad(int id_usuario_sesion, string direccion_mac, string nombre_dispositivo)
        {
            //Declarando Objeto de Retorno
            RetornoOperacion result = new RetornoOperacion();

            //Instanciando Usuario Sesión
            using (UsuarioSesion us = new UsuarioSesion(id_usuario_sesion))
            {
                //Validando que exista
                if (us.habilitar && us.EstatusSesion == UsuarioSesion.Estatus.Activo)
                {
                    //Actualizamos Ultima Actividad
                    result = us.ActualizaUltimaActividad(direccion_mac, nombre_dispositivo);
                }
                else
                {
                    //Instanciando Excepción
                    result = new RetornoOperacion("La Sesión ha Expirado");
                }
            }

            //Devolviendo Resultado Obtenido
            return(result.ToXMLString());
        }
예제 #2
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);
                        }
                    }
                }
            }
        }