2013-04-19 1 views
0

que je développe un site Web en utilisant 4 ASP .NET MVC, j'utilise SimpleMembership pour l'authentification. je dois limiter l'utilisateur à ne pas avoir plus d'un certain nombre de sessions en utilisant son compte. Une fois que l'utilisateur atteint sa limite, je voudrais invalider sa session authentifiée la plus ancienne. sessions de comptage peuvent être mises en œuvre dans les méthodes de Session_Start de global.asax et Session_End, mais je ne suis vraiment pas sûr de savoir comment procéder à l'annulation. Toutes les idées sont les bienvenues.Invalider toutes les autres sessions utilisateur

Répondre

1

Un peu en retard à la fête, mais voici comment je l'ai fait.

  • Lorsque l'utilisateur se connecte, j'enregistrer la session de asp.net dans le cache
  • Un attribut contrôle (OneSessionPerUser) si l'utilisateur est connecté et sa session en cours est égale à la session en cache
    • Si la session en cache <> session en cours -> logout()

J'ai créé un attribut et un vide statique (pour aller chercher et régler les valeurs de cache)

0

Pour votre problème, j'obtenir les clés de la session, puis retirer la clé la plus ancienne.

var keys = Context.Session.Keys; //get the keys 
Context.Session.Remove(keys[0]; // remove first key in the list. 
+0

oui, mais comment puis-je l'autre session de l'utilisateur? –

+0

voir modifier j'ai mal lu la question – Robert

Questions connexes