2012-10-31 3 views
0

Je peux définir un délai d'attente de 20 minutes pour les sessions, ce qui signifie que si l'utilisateur ne fait pas de demande dans les 20 minutes, sa session expire. Mais ce dont j'ai besoin est de pouvoir expirer la session après un certain temps, peu importe si l'utilisateur envoie toujours des demandes.Comment implémenter ou configurer l'expiration de session matérielle dans ASP.NET?

Par exemple, après 4 heures, la session doit expirer, peu importe si l'utilisateur envoie une autre requête ou non; c'est pour empêcher les malwares d'abuser du comportement de session par défaut ...

Comment le configurer ou l'implémenter dans ASP.NET?

J'espérais qu'il y aurait un réglage de configuration mais je ne pouvais pas en trouver un?

Un grand merci

Répondre

1

Il n'y a pas paramètre de configuration pour cette exigence car il est assez unique.

Vous pouvez implémenter ceci en envoyant un cookie au client lors de sa première connexion - vérifiez ce cookie à chaque demande et commencez à le rejeter quand 4 heures se sont écoulées. Vous pouvez stocker cette heure de début dans un cookie ou dans une variable Session.

0

Comme mentionné Oded, vous devez également stocker la première heure de connexion en session sur l'événement de début de session. et lorsque vous lisez la session, vérifiez l'heure et utilisez Session.Clear();

et de manière simple l'heure de début de la session de vérification y accède en utilisant une propriété globale.

public User CurrentUser 
{ 
    get 
    { 
     User user = (User)Session["CurrentUser"]; 
     if (user.startTime > "4 hours") // you can do it what ever you want. 
      Session.Clear(); //or .Abandon(); [Check Here][1] 

     return (User)Session["CurrentUser"] 
    } 
} 

Check Here

Questions connexes