begin process at 2012 05 28 01:19:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

WebForms

 > 

PostBack

 > 

Navigation dans 2 onglets/fenêtres = problème gestion session


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Navigation dans 2 onglets/fenêtres = problème gestion session

mercredi 27 janvier 2010 à 16:23:53 | Navigation dans 2 onglets/fenêtres = problème gestion session

MarineW

Bonjour,

Nous utilisons ASP.Net pour des applications de gestion, en stockant les paramètres en session, pour les transmettre d'une page à l'autre.
Problème : si l'utilisateur ouvre l'appli dans un 2e onglet ou une 2e fenêtre du navigateur, les variables de session sont écrasées. Quand on revient sur le 1er onglet, les données affichées ne sont plus du tout en phase avec les paramètres en session, et ça devient vite le bazar.

Je vois 2 pistes :
- Passer les paramètres de page à page par autre mécanisme que la session
=> Par le ViewState ?? Mais comment, puisqu'il est au niveau des composants, et pas au niveau de la page ?
- Réussir à détecter que l'utilisateur a ouvert un nouvel onglet/fenêtre, et générer un identifiant différent pour chaque onglet, qui sert de suffixe aux clefs des variables stockées en session.
=> C'est à priori possible de détecter l'ouverture d'un nouvel onglet en jouant avec le window.name côté client. Mais j'ai ensuite des difficultés à remonter l'info côté serveur. J'y arrive en ajoutant dynamiquement un champs caché dans le formulaire, mais si la personne modifie l'URL et valide, on est en GET (et non plus en POST), et le champs caché ne remonte pas vers le serveur, on n'a donc plus accès aux variables en session !

J'ai fait des recherches et des tests dans ces 2 sens, mais je n'arrive à rien de concret.

Quelqu'un aurait-il trouvé une solution à cette problématique (sur une de ces 2 pistes ou sur toute autre idée), ou des infos pour me mettre sur le bon chemin ?

Merci d'avance.
Marine
dimanche 6 juin 2010 à 17:49:22 | Re : Navigation dans 2 onglets/fenêtres = problème gestion session

dremusat

Bonjour Marine,
Avez-vous trouvé une solution à votre problème?
J'ai en effet le même problème: le cookie de deux sessions différentes sur le même PC est partagé.
Merci de votre retour
Cordialement
Damien
lundi 7 juin 2010 à 09:59:36 | Re : Navigation dans 2 onglets/fenêtres = problème gestion session

MarineW

Bonjour,

Nous n'avons pas vraiment trouvé de solution à ce problème.
Une précaution importante à prendre dans le développement tout de même, pour éviter les catastrophes en mise à jour :

Sur un formulaire de mise à jour d'un objet avec un identifiant donné, toujours stocker l'identifiant de l'objet en question dans un champs caché de la page, et non pas en session. Car si on récupère l'identifiant en session, et qu'entre temps l'utilisateur a ouvert la même page sur un autre objet, et qu'il revient sur le 1er écran pour valider le formulaire, on se retrouve à écraser le 2e objet avec les valeurs du 1er !!

Si vous trouvez une solution de votre côté, ce serait gentil de la remonter ici, car nous sommes toujours intéressés !

Merci.
Marine
lundi 7 juin 2010 à 10:33:36 | Re : Navigation dans 2 onglets/fenêtres = problème gestion session

dremusat

Bonjour Marine,

Merci de votre retour rapide, en effet, cette précaution est à prendre en compte.

En cherchant sur d'autres forums, j'ai également trouvé un contournement, que j'ai testé rapidement et qui a l'air de fonctionner (mais il faut encore que je pousse mes tests) et qui consiste tout simplement à ne plus utiliser les cookies, c'est à dire passer cookieless à true dans le fichier web.config de votre application:
<system.web>
<sessionState timeout="20" cookieless="true" mode="InProc" />
...

L'identifiant de la session est alors passé dans l'URL de la page appelée et sera différent pour chacun des onglet ouvert avec la même adresse, et donc les variables de session ne seront plus écrasées.

Vous pouvez tester cela rapidement sur votre environnement de test sans toucher au code source, c'est simple à mettre en oeuvre.

L'inconvénient est qu'il sera difficile à l'utilisateur d'aller directement sur une page de votre application en modifiant l'URL.
A voir donc avec ce que vous voulez vraiment.

En espérant que ca puisse vous aider.

Damien




Cette discussion est classée dans : problème, page, gestion, session, onglet


Répondre à ce message

Sujets en rapport avec ce message

Problème avec l'objet Session [ par Tibo ] J'ai un problème avec un objet session qui se perd entre deux pages : j'appelle une page, l'objet session contient des valeurs, avec un script en Java Gestion de session et bouton [ par chrisK ] Slt tout le monde.Je me forme à l'asp, et j'ai le pb suivant.J'ai une page d'accueil avec des boutons qui renvois sur des pages ( classique ) avec le Problème de variable session [ par oeilynx ] Après avoir créé une variable session et exécuté la fonction session.abandon, en tapant l'url d'une page qui utilise cette variable session, cette var asp gestion de session [ par abari ] slt tt le mondeje suis nouveau dans asp,et j'aimerai bien savoir comment gérer une session depuis une connexion d'un client. et comment donner une fi asp:gestion de la session [ par abari ] salut tt le monde,Session.TimeOut=1j'ai mis la durée de une session à une minute sur mon site,et je veux faire le traitement suivant :qd la durée de l asp:gestion de session [ par abari ] slt tt le mondej'ai fais une petite gestion de la session dans mon site,je teste sur chaque page si le client est connecté si non je le redirige vres Probleme pour l'affichage de la page precedente [ par DrikC95220 ] Bonjour à tous,J'aurrai besoin d'aide car cela fait près d'une semaine que j'essais de régler mon problème.Mon application est en ASP.NET, mon code d< Problème de gestion du cache avec des images. [ par walterskinner ] Bonjour, J’ai un petit problème avec la gestion du cache avec des images. J’ai créé une page d’UPLOAD d’un fichier image sur le serveur. J’utilise l Problème Session [ par Fildomen ] Salutje veux qu'une page ne soit ouverte qu'une seule fois par le même pc !!! ca marche si j'ouvre le naviguateur et je tape l'adresse de ma page !! e Problème au niveau de ma Session_end dans mon Global.asax [ par Manu94600 ] Salut à tous,Je cherche quelqu'un qui puisse m'indiquer mon erreur.Alors j'ai une application asp.net en C#.Je cherche à compter combien d'utilisateur


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,172 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales