WishhhMaster
Messages postés327Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention10 avril 2010
-
30 mai 2006 à 11:04
WishhhMaster
Messages postés327Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention10 avril 2010
-
2 juin 2006 à 22:11
Salut,
J'ai un problème concernant l'utilisation de l'objet Session. Je m'explique:
en arrivant sur une page d'administration, l'utilisateur est invité à se logger sinonil ne peut pas accéder au contenu de cett page. Le principe est le suivant : dès qu'il s'est correctement identifié, je rentre cette information dans l'objet Session comme ceci Session["loggedin"]= true; Et à chaque chargement de la page, mon code ressemble à ça:
if(Session["loggedin"]== null)
{
// Affiche le formulaire pour se logger
}
else if ((bool)Session["loggedin"]==true)
{
// Affiche les informations d'administration
}
Ce code marche parfaitement bien en local. Une fois loggé, l'utilisateur a accès à toutes les informations qu'il veut. Le problème est quand je déploie l'application sur un serveur web asp.net: la session semble se terminer au bout de 30 secondes. Par exemple, après 30 secondes, l'utilisateur va cliquer sur un quelconque bouton de validation dans la page, ce qui va provoquer le rechargement de celle-ci. Et la il se trouve que l'objet session est un nouveau, qui ne contient plus l'état de "loggedin", et donc l'utilisateur est réinvité a se relogger, ce qui est embêtant :/
Et j'ai bien vérifié la durée d'une session sur le serveur: c'est celle par défaut, 20 minutes.
Coolpix08
Messages postés150Date d'inscriptiondimanche 14 mars 2004StatutMembreDernière intervention21 décembre 20072 31 mai 2006 à 16:40
d'apres ce que tu dit, cela me semble bien un problème de timeout, essaie de bien verifier que le timeout est bien propre à ton application et non à autre chose.
Sinon, autre sugestion sur un server ASP.NET tu peux faire une authentification par formulaire et non par windows. Ainsi si la session n'existe pas il est directement redirigé vers ta page de login, sinon il va à la page qu'il a demandé.
Ainsi tu n'a plus besoin de tester dans chaque page la presence de la variable session car c'est le serveur ki va le faire pour toi
WishhhMaster
Messages postés327Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention10 avril 20108 31 mai 2006 à 18:42
Salut,
Merci pour ta suggestion mais je voudrais me servir de la variable de session pour mettre d'autres infos en mémoire aussi. Le problème n'est donc pas qu'avec le login.
Sinon c'est bien le timeout de mon application, je peux le changer et tout. Mais j'ai remarqué que la nouvelle session créee avait toujours la même ID que l'ancienne à chaque fois... Cependant je sais qu'il en crée une nouvelle, car j'ai mis des alertes dans Session_Start du fichier Global.asax, et j'affiche également le champ Sessin.IsNewSession qui me confirme que c'est bien une nouvelle qui est créee (quand un bouton ou un refresh provoque le rechargement de la page).
Cependant, l'alerte que je met dans le Session_End de Global.asax n'est jamais affichée..
Je n'y comprend rien. Sachant que tout marche bien en local, et que les papamètre de la session sont les même sur le serveur web (mode InProc et tout)
Coolpix08
Messages postés150Date d'inscriptiondimanche 14 mars 2004StatutMembreDernière intervention21 décembre 20072 31 mai 2006 à 19:20
Ah ouais la ca se corse un peu...
Le gros problème n'est pas le temps ni tes paramètres alors mais la je pense que c'est carement un problème du serveur car c'est lui qui s'occupe de créer les ID de sessions et elle sont creer il me semble de manière aléatoire et par rapport à l'heure.
Alors à mon avis tu devrait faire des recherches la dessus si tu es vraiment motivé mais à ta place jme pencherais plus sur une réinstall du server Web...
Sinon ca ne me parait pas un problème de config vu les symptomes donc je ne peux pas taider...Désolé
Vous n’avez pas trouvé la réponse que vous recherchez ?
WishhhMaster
Messages postés327Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention10 avril 20108 31 mai 2006 à 22:16
Je n'ai pas accès au serveur, c'est un hébergeur asp.net gratuit que j'utilise pour faire mes tests avant d'en prendre un payant. Le problème vient sans doute de là... enfin j'espère.Merci pour ton aide en tout cas