Otros consejos

Lo que viene a la mente es usar un BackgroundWorker para cerrar la sesión del usuario cuando el temporizador llega a cero. Este temporizador se reinicia en cada acción que el usuario realiza. O incluso podría estar conectado a eventos de mouse o teclado para que cuando el usuario no mueva el mouse o no esté usando el teclado, el temporizador realice una cuenta regresiva hasta que alcance el tiempo de cierre de sesión.

Puede crear una clase en su aplicación que tenga algún tipo de tiempo de espera que se reinicie cada vez que el usuario interactúe con el software. Si se alcanza el tiempo de espera, el usuario se desconecta.

Lo complicado aquí es detectar la interacción del usuario. En ASP.NET es bastante fácil, básicamente necesita verificar solo las solicitudes de página. En una aplicación de formularios de Windows, deberá supervisar la entrada en un nivel mucho más detallado (cualquier pulsación de tecla en cualquier cuadro de texto será, por ejemplo, una interacción del usuario). Supongo que la propiedad KeyPreview junto con un detector de eventos KeyPress en el formulario podría ser una buena forma de avanzar.

Bueno, primero, ¿qué quieres decir con inactivo? En la web estás intentando simular un estado donde no hay ninguno. Sin embargo, en una aplicación cliente, obtiene todos los eventos de ordenación, incluso MouseMove. La idea principal es que usted podría crear UserControls fuera de los controles de entrada estándar como TextBox, Button, etc. y hacer que actualicen algún tipo de objeto de temporizador cuando se invocan eventos. La otra es renunciar a las cosas de UserControl y simplemente actualizar el temporizador en cada controlador de eventos que cree. Probablemente sería más sencillo simplemente actualizar el temporizador basado en los eventos MouseMove o KeyDown en el propio Formulario.

scroll top