2011-11-17 5 views
0

Dans une application ASP.NET, nous fournissons un lien pour ouvrir une autre application. Si l'utilisateur clique sur ce lien hypertexte, une autre application s'ouvrira dans une nouvelle fenêtre. Le problème est que les applications utilisent la même session. Est-il possible de changer l'identifiant de session pour la nouvelle fenêtre?Nouvelle session pour nouvelle fenêtre dans ASP.NET

J'ai déjà essayé d'abandonner la session et d'effacer le cookie sessionID dans le chargement de la page. Mais il crée un nouvel identifiant de session et les deux fenêtres accèdent à nouveau au nouvel ID de session. Je veux avoir un identifiant de session séparé pour les deux fenêtres.

Y a-t-il un moyen de le faire?

+0

Si vous ne vous souciez pas de vos URL, vous pouvez essayer [Sessions sans cookie] (http://msdn.microsoft .com/en-us/library/aa479314.aspx), mais il existe probablement une façon plus correcte de le faire. – R0MANARMY

+0

Duplicata possible: http://stackoverflow.com/questions/2840615/asp-net-session-multiple-browser-tabs-different-sessions –

+0

On dirait que vous utilisez le mauvais outil pour le travail et la lutte contre le grain . Qu'est-ce que vous essayez de faire qui vous fait vouloir ce comportement en premier lieu? –

Répondre

2

Je ne pense pas qu'il existe un bon moyen de le faire lorsque vous utilisez Session. Vous pouvez penser à utiliser Viewstate au lieu de session pour les données que vous ne voulez pas partager entre les deux fenêtres.

0

Vous pouvez créer un ID de session de manière dynamique en fonction de l'application sur laquelle vous travaillez. Lorsque vous ouvrez une autre application, vous pouvez créer de nouvelles sessions pour la deuxième application en utilisant un identifiant unique.

0

Même question en utilisant simplement les onglets du navigateur. La même réponse travaillera pour vous

asp.net - session - multiple browser tabs - different sessions?

+0

Cela mettra l'identifiant de session dans l'url je ne le veux pas dans l'URL. – sabaedge

+1

@sabaedge ce n'est pas ce que suggère la réponse à la question précédente. Ce que vous devez faire, c'est rendre unique l'identifiant de session que vous utilisez. Cela peut être fait avec un nombre aléatoire ou guid stocké dans une variable cachée ou un état d'affichage –

0

Utilisez idSession. et placez-le dans l'état d'affichage. Comparer l'identifiant de session de l'état d'affichage à l'identifiant de session dans la session. Si elles sont différentes c'est une nouvelle fenêtre créer une nouvelle session et n'oubliez pas d'activer le nouvel ID dans l'état d'affichage