2009-01-11 3 views
1

J'écris une webapp qui ne sera utilisée que par les utilisateurs authentifiés. Certaines bases de données temporaires et certains fichiers journaux seront créés lors de chaque session utilisateur. Je voudrais effacer tous ces fichiers temporaires lorsque la session est terminée. De toute évidence, un événement de fermeture de session ou de fermeture de fenêtre serait suffisant pour fermer la session, mais dans certains cas, l'utilisateur peut garder le navigateur ouvert longtemps après avoir terminé.quand supprimer la session de l'utilisateur

Une autre approche consisterait à chronométrer les sessions utilisateur ou à supprimer les fichiers temporaires pendant la maintenance de routine.

Comment allez-vous?

Répondre

1

Les sessions utilisateur doivent avoir une valeur de délai d'attente et doivent être fermées lorsque le délai expire ou que l'utilisateur se déconnecte. Se déconnecter est un moment évident pour cela et le délai d'attente doit être présent au cas où l'utilisateur quitterait votre application sans se déconnecter.

0

session de désenregistrer pendant:

1) Déconnexion

2) délai d'attente automatique (la longueur du délai peut être fixé par le web.config)

3) Dans le cadre de toute autre les méthodes de maintenance de routine que vous avez déjà exécutées en supprimant les informations de session qui n'ont pas été consultées pendant une période définie (probablement plus courte que votre longueur de délai automatique car si la longueur était déjà atteinte)

+0

Je n'ai pas vraiment le 3). Voulez-vous définir un délai d'attente de, disons, 1 heure et supprimer des sessions de toute façon après 20 minutes? – kender

1

Un travail cron pour nettoyer les données de session expirées dans la base de données est une bonne chose. En fonction de la durée de vos sessions et de la taille de votre base de données, vous pouvez effectuer un nettoyage plus d'une fois par jour. Mais une passe de nettoyage par jour est généralement bien.