2010-05-12 3 views
1

J'essaie de mettre en œuvre qu'un seul utilisateur peut se connecter avec des informations d'identification données.Un utilisateur à la fois

Je vérifie ce au moment de la connexion avec ce code:

MembershipUser objectUser = Membership.GetUser(Login1.UserName); 
    if (objectUser != null) 
    { 
     boolIsAlreadyLoggedIn = objectUser.IsOnline; 
    } 

Cela fonctionne très bien. J'ai un problème, lorsqu'un utilisateur a coché Se souvenir de moi. Scénario: 1. Si un utilisateur se connecte avec Remember Me cochée. Ferme le navigateur 2. À partir d'une autre machine ou d'un autre navigateur, connectez-vous avec les mêmes informations d'identification. Il peut se connecter. 3. Mais si l'utilisateur se connecte à nouveau à partir de Browser-1/machine-1, il peut se connecter, car le navigateur a un cookie persistant.

Quelqu'un peut-il me suggérer comment puis-je résoudre ce problème?

Merci à l'avance

+0

Utiliser les cookies de session uniquement? – Oded

Répondre

0

Je suppose que le cookie est titulaire d'un identifiant de session par login. Assurez-vous simplement que chaque utilisateur ne peut être associé qu'à un seul identifiant de session à la fois. Chaque nouvelle connexion remplace tout identifiant de session existant pour l'utilisateur par un nouveau. Et bien sûr, toute demande utilisant un ID de session expiré est redirigée directement vers la page "non connecté — vous avez peut-être connecté ailleurs".

+0

Je suppose que nous pouvons gérer chaque demande d'authentification dans son événement. Mais dans ce cas, nous n'avons pas de variable de session. – Samy

Questions connexes