2009-09-14 16 views
0

J'ai un problème de session qui n'expire pas. Voici mon casnuméro de sessions asp.net

J'ai une application dans asp.net1.1. Je suis capable de gérer la session lorsque l'utilisateur clique sur le bouton de déconnexion. La session est active pendant 35 minutes. l'application vérifie également si le même utilisateur essaie de se connecter en utilisant plusieurs machines et le bloque.

Maintenant, cette application est déployée dans la ville où il y a une panne de courant. Lorsque l'utilisateur est connecté et que la lumière s'éteint, la session reste ouverte. Pour cette raison, l'utilisateur ne peut pas se connecter à nouveau pour les 35 prochaines minutes à partir d'une autre machine.

Pouvez-vous dire solution de la question de la gestion de la session restée ouverte de la bonne façon?

Répondre

2

Avez-vous écrit le code que si une session existe déjà, refuser une autre connexion? Si oui, vous devrez probablement le changer. Il est plus courant de tuer l'ancienne session et d'en commencer une nouvelle si nécessaire. Je préfère autoriser plusieurs sessions pour un seul utilisateur, à moins qu'il y ait des exigences de sécurité spécifiques.

+0

Puisqu'il s'agit d'une application Web et non d'une application client, la conception normale consiste à déconnecter l'ancienne session lorsque l'utilisateur s'est connecté la deuxième fois. – Erwin

+0

Pouvez-vous partager du code s'il vous plaît .. comment détecter l'ancienne session et commencer un nouveau dans asp.net1.1? aussi comment cela fonctionnera-t-il dans IE8 avec la nouvelle fonctionnalité de session? –

0

Recherchez le champ Délai d'attente SessionState dans Web.config.

0

La meilleure solution consiste à ajouter l'onduleur aux postes de travail client afin qu'ils ne perdent pas la connexion si l'alimentation est coupée. La seule autre option que je peux envisager dans cette situation est d'ajouter quelque chose au code de connexion qui, au lieu de bloquer un autre login de lieu, force l'autre session à expirer lors d'une connexion réussie.

0

Nous avons résolu une question semblable de cette façon:

dans le corps de la page asp.net, nous attachons de l'événement onload un appel ajax. Dans cet appel ajax, le délai d'attente de session est défini sur 35 minutes.

Un appel ajax est également attaché à la onunload, où nous définissons le délai d'attente de session à 1 min. De cette façon, l'utilisateur dispose d'un délai d'attente de 35 minutes lors de l'utilisation de l'application, mais dispose d'un délai d'attente de 1 minute lors de la fermeture de l'application.