c# asp.net session sessionid

c# - ASP.NET Kill Session por Id



sessionid (3)

Para eliminar una pieza particular de la Session , utilice Session.Remove() , como este:

Session.Remove("YourKey");

Nota: Esto elimina el valor y la clave de Session , mientras que puede ver que las personas usan Session["YourKey"] = null; eso solo eliminará el valor, pero deja la clave. Esto puede o no ser lo que quieres, pero solo quería señalar la distinción.

Mi aplicación tiene un control de permisos de usuario, porque no todos los usuarios pueden acceder al sitio web completo. En este momento, todos los permisos para un usuario específico se almacenan en su sesión, porque sería un problema para mí buscar en la base de datos cada publicación posterior.

El problema es que cuando elimino un permiso, el usuario aún puede acceder a la página, y solo cuando cierra el navegador, la actualización entra en vigencia.

¿Hay alguna forma de eliminar una sesión de aplicación específica mediante la identificación, lo que obliga al usuario a iniciar sesión de nuevo?


Puede escribir Session.Abandon(); o Session.Clear();

o Session.SessionID[int index];

almacenar el valor de la sesión del usuario particular en esto y luego usar Session.Abandon(); y Session.Clear();

Para matar una sesión en particular, intente usar Session.Remove("key");


"Is there a way to Kill an specific Application Session by the ID, forcing user to Log in again?"

No. Solo puede acceder al objeto de sesión del usuario que realiza la solicitud actual (es decir, usted mismo), no a otros usuarios de objetos de sesión.

Por lo tanto, debe almacenar la identificación del usuario en otro lugar, por ejemplo, en una colección estática. Cuando el usuario realiza la siguiente solicitud, puede verificar si la identificación está en la colección y actualizar los permisos o cerrar la sesión del usuario.

Otra alternativa sería mantener los objetos de permiso de todos los usuarios actualmente conectados en una colección estática, así como en su variable Session. De esta forma, podría cambiar el objeto de permiso sin acceder al objeto Session de ese usuario.

El uso de variables estáticas en una aplicación web, por supuesto, viene con las precauciones habituales. Como múltiples hilos pueden acceder a él, el acceso debe sincronizarse. Además, como señaló Alexei Levenkov, si tiene varios servidores, debe mantener los datos sincronizados entre los servidores.