authentication login membership

authentication - ¿Cómo se actualiza la última fecha de inicio de sesión si se establece "Recordarme"?



login membership (2)

Cuando un usuario inicia sesión en mi sitio, la fecha de la visita se sella en la base de datos (tabla de usuarios). Esto es manejado por el proveedor de membresía (personalizado). Sin embargo, si el usuario marca "¿Me recuerda?" Al iniciar sesión, no se les solicita (naturalmente) que inicien sesión en visitas posteriores. Como el proveedor de membresía no está empleado en esta situación, la última fecha de inicio de sesión no se actualiza en la base de datos.

Con la autenticación de formularios, ¿cómo puedo asegurarme de que la última fecha de inicio de sesión se actualice en cada nueva visita al sitio, más bien cuando inician sesión físicamente? ¿Hay algún evento que pueda enganchar para lograr esto?

No puedo usar el estado de sesión, ya que está completamente deshabilitado en el sitio web que estoy desarrollando (el módulo de sesión se ha eliminado).

Gracias


Supongo que estás usando cookies (no puedo ver cómo funcionaría "Remember me").

Cuando un usuario inicia sesión, configure dos cookies, una permanente (si se marca Remember Me) y una temporal (esta sesión solamente). El segundo es lo que usas para autorizar al usuario.

Por lo tanto, en una página donde un usuario necesita iniciar sesión, busque la cookie de sesión. Si se encuentra, continúa como siempre. Si no se encuentra, busque la cookie permanente, si la encuentra, mire al usuario, configure la fecha de inicio de sesión y configure la cookie de sesión. (Si no se encuentra la cookie permanente, simplemente no inició sesión).


Suponiendo que está hablando de ASP.NET 2.0 (dado el comentario del proveedor de membresía).

Donde quiera que esté revisando la cookie para ver si el usuario debe ser autenticado, debe llamar a la función GetUser del proveedor de membresía que toma un booleano para actualizar la fecha de actividad del usuario.

Según los documentos de MSDN :

Método MembershipProvider.GetUser

Toma, como entrada, un identificador de usuario único y un valor booleano que indica si se debe actualizar el valor LastActivityDate para que el usuario demuestre que el usuario está actualmente en línea. El método GetUser devuelve un objeto MembershipUser rellenado con los valores actuales de la fuente de datos para el usuario especificado. Si el nombre de usuario no se encuentra en la fuente de datos, el método GetUser devuelve null (Nothing en Visual Basic).