2009-03-25 11 views
4

Lorsqu'un utilisateur se connecte à mon site, la date de la visite est marquée dans la base de données (table utilisateur). Ceci est géré par le fournisseur d'appartenance (personnalisé). Cependant, si l'utilisateur consulte le message "Se souvenir de moi?" option lors de la connexion, ils ne sont (naturellement) pas invités à se connecter lors de visites ultérieures. Comme le fournisseur d'appartenances n'est pas employé dans cette situation, la dernière date de connexion n'est pas mise à jour dans la base de données. En utilisant l'authentification par formulaire, comment puis-je m'assurer que la dernière date de connexion est mise à jour à chaque nouvelle visite sur le site, plutôt que lors de la connexion physique? Y a-t-il un événement auquel je peux me joindre pour y parvenir?Comment mettre à jour la dernière date de connexion si "Se souvenir de moi" est activé?

Je ne peux pas utiliser l'état de session, car il est complètement désactivé dans le site Web que je développe (le module de session a été supprimé).

Merci

Répondre

2

Je suppose que vous utilisez les cookies (je ne vois pas comment le « Souviens-toi de moi » fonctionnerait autrement). Lorsqu'un utilisateur se connecte, définissez deux cookies, un permanent (si Remember Me est coché) et un temporaire (cette session uniquement). La seconde est ce que vous utilisez pour autoriser l'utilisateur. Par conséquent, sur une page où un utilisateur doit être connecté, recherchez le cookie de session.

Si trouvé, continuez comme d'habitude. Si ce n'est pas le cas, recherchez le cookie permanent, s'il est trouvé, regardez l'utilisateur, définissez la date de connexion et définissez le cookie de session. (Si le cookie permanent n'est pas trouvé, il n'est simplement pas connecté).

+0

Je suis allé avec une variation à ce sujet: Je crée un cookie non persistant lorsque l'utilisateur s'authentifie d'abord. Les demandes d'authentification suivantes sont interceptées et, si le cookie n'existe pas, il est créé et la dernière connexion est mise à jour. –

0

En supposant que vous parlez de ASP.NET 2.0 (compte tenu du commentaire du fournisseur d'adhésion). Lorsque vous vérifiez le cookie pour voir si l'utilisateur doit être enregistré automatiquement, vous devez appeler la fonction GetUser du fournisseur d'appartenances qui prend un booléen pour mettre à jour la date d'activité de l'utilisateur.

par le MSDN docs:

MembershipProvider.GetUser Méthode

prend en entrée un identificateur d'utilisateur unique et une valeur booléenne indiquant si la mise à jour de la valeur LastActivityDate pour l'utilisateur afin de faire apparaître que l'utilisateur est actuellement en ligne. La méthode GetUser renvoie un objet MembershipUser rempli avec les valeurs en cours de la source de données pour l'utilisateur spécifié. Si le nom d'utilisateur n'est pas trouvé dans la source de données, la méthode GetUser renvoie null (Nothing en Visual Basic).

+1

Merci pour la réponse rapide. J'utilise ASP.Net 3.5. Je ne vérifie pas le cookie moi-même - .Net s'en occupe automatiquement. Je ne sais pas comment/où se connecter à l'étape où .Net effectue ses vérifications de cookies. –

Questions connexes