2008-11-19 15 views

Répondre

2

Généralement, le meilleur moyen consiste à implémenter une personnalisation sur le fournisseur qui vérifie la dernière connexion, ainsi que l'ajout de méthodes à votre code pour suivre l'action de l'utilisateur. La clé est que vous devez savoir à quel moment l'utilisateur a fait quelque chose OU se déconnecter. De là, vous pouvez déterminer si le compte est réellement prêt. Si vous configurez le suivi pour ces éléments dans le code, vous pouvez ensuite modifier le fournisseur d'appartenance pour vérifier que le compte peut se connecter.

1

D'un point de vue conceptuel, vous devez décider comment vous voulez réagir. Si vous avez l'utilisateur A connecté et l'utilisateur B tente de se connecter (en utilisant les mêmes informations d'identification) vous:

  1. Coup de pied utilisateur A sur

ou

  1. ne permettra pas à une connexion de l'utilisateur B

(2) est problématique parce que vous devez savoir de manière fiable que un utilisateur a ouvert une session pour déterminer si l'utilisateur de se connecter B. utilisateur a pourrait être juste à la recherche à une page sur votre site pendant un certain temps, ce qui fait de temps en temps pourrait ne pas être le meilleur. Peut-être une sorte de chien de garde AJAX qui pique votre site Web toutes les 30 secondes.

(1) nécessite également un peu de travail. Lorsqu'un utilisateur se connecte, vous souhaitez stocker sa valeur de cookie (probablement dans la base de données) et l'ajouter à une liste de cookies émis pour cet utilisateur. De cette façon, seul le dernier cookie émis (dernière connexion) sera accepté. Si vous voyez l'un des cookies précédents, vous devez déconnecter cette personne.

1

Je crée une table avec l'ID de l'utilisateur. Chaque fois qu'un utilisateur se connecte, le système crée un identifiant unique, qui est stocké dans la table par rapport à l'ID de l'utilisateur, ainsi que dans la variable de session.

À chaque publication ou processus de page, la clé stockée dans la variable de session est comparée à la dernière clé de cet utilisateur stockée dans la base de données. Si un deuxième utilisateur se connecte avec le même compte, le système crée un nouvel ID unique, de sorte que lorsque le premier utilisateur publie ou modifie des pages, la clé stockée dans sa variable de session sera différente de celle du tableau, indiquant que le compte a été ouvert dans un autre endroit.

Je programme un processus de nuit pour supprimer les anciens identifiants de la table

Questions connexes