2009-12-26 4 views
2

Je possède un site de jeux vidéo. De temps en temps, j'ai besoin de suspendre les utilisateurs pour différentes raisons. Ils trichent ou ils sont de mauvais utilisateurs avec une mauvaise intention. Après avoir suspendu les utilisateurs, ils ne peuvent plus se connecter sur mon site, jusqu'à l'expiration de la période de suspension. Cependant, après avoir suspendu un utilisateur, il peut toujours accéder au site, discuter avec d'autres utilisateurs, créer des messages sur le forum, faire n'importe quoi, c'est parce qu'il reste connecté sur le site. Je ne peux rien faire pour cela et la plupart du temps j'ai besoin de redémarrer IIS afin de me débarrasser des mauvais utilisateurs.Tuer une session utilisateur ASP .NET depuis la session d'administration

Est-ce que je peux faire pour tuer une session utilisateur de ma session ASP .NET? Je suis contre l'utilisation de SQL pour stocker les variables de session utilisateur.

Je préfère vérifier une variable de session/application ASP .NET à chaque requête de l'utilisateur, et si cette variable contient l'ID de l'utilisateur suspendu, de le déconnecter immédiatement.

Répondre

5

Vous ne pouvez pas accéder à la session comme vous le souhaitez. Ce que vous pouvez faire est de garder une liste des utilisateurs suspendus dans le cache de l'application. À chaque demande de page, et chaque tentative de connexion, vous pouvez faire une recherche sur la liste pour voir si votre utilisateur actuel est suspendu. S'il l'est, vous pouvez alors le déconnecter et abandonner sa session, ou empêcher le nouveau login.

+0

Les connexions sont déjà bloquées. Le problème était de les déconnecter immédiatement (s'ils étaient connectés) après les avoir suspendus du panneau d'administration. Ton idée avec la variable Cache me semble géniale. C'est parce que le cache est thread-safe. –

+0

C'est la bonne façon de gérer cela. Vous devez vérifier chaque publication pour voir si elles sont encore valides, sinon ... les expulser. –

Questions connexes