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
Partager