IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Session partagée entre navigateurs


Sujet :

ASP.NET

  1. #1
    Membre confirmé Avatar de joKED
    Profil pro
    Imposteur en chef
    Inscrit en
    Février 2006
    Messages
    339
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Imposteur en chef

    Informations forums :
    Inscription : Février 2006
    Messages : 339
    Points : 458
    Points
    458
    Par défaut Session partagée entre navigateurs
    Bonjour à tous,

    J'ai un problème concernant l'utilisation des variables se session sous ASP.NET et IIS7.

    En effet, j'utilise une gestion de session hors processus (via le state server) par cookie. Cependant, lorsque j'ouvre 2 fenêtre différentes d'un navigateur quel qu'il soit, ma session est toujours partagée entre les deux navigateurs, et ça me pose problème.

    Exemple : J'écris une valeur X dans une variable de session depuis ma page lancé sur instance1 d'IE9 (ou firefox ou chrome, whatever), et lorsque je lis la valeur X depuis instance2 de mon navigateur, j'ai la même valeur. Et vice versa si je modifie la valeur depuis instance2 ...

    D'après les quelques recherches que j'ai effectué, le cookie de session ASP.NET est stocké en mémoire du navigateur (cookie temporaire), et donc pas sur disque. Dès lors, deux navigateurs ouverts avec 2 processus différents ne devraient pas partager ce cookie de session (si je ne me trompe pas). Comment se fait il que ce soit le cas ?

    La solution, me direz vous, est d'utiliser un gestion cookieless de session via URI, mais c'est tellement moins user friendly d'avoir ce vilain identifiant de session dans l'url que j'aimerai vraiment éviter.

    Je comprendrai que la session soit partagée entre deux onglets car on est dans le même processus (quoique je vois bien un process différent dans le gestionnaire des taches lorsque j'ouvre un nouvel onglet), mais dans deux fenêtres différentes, ouvertes à des moments distincts, je ne comprends pas.

    L'un d'entre vous a t'il déjà été confronté à ce problème ? Avez vous une idée d'un éventuel paramétrage qui pourrait m'aider à contourner ce problème ?

    Merci de votre aide

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Au contraire, je dirais que le cookie est sauvegardé sur le disque.

    Si tu veux une nouvelle session en ouvrant une nouvelle fenêtre de ton navigateur, c'est une option à configurer dans ce dernier

  3. #3
    Membre confirmé Avatar de joKED
    Profil pro
    Imposteur en chef
    Inscrit en
    Février 2006
    Messages
    339
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Imposteur en chef

    Informations forums :
    Inscription : Février 2006
    Messages : 339
    Points : 458
    Points
    458
    Par défaut
    Au contraire, je dirais que le cookie est sauvegardé sur le disque
    Et vous avez raison. Le cookie de session ASP.NET est non persistant, mais cependant, il est quand même écrit sur le disque. En fait, il s'agit d'un cookie normal, mais sans date d'expiration. Dès lors, il est supprimé lors de la fermeture du navigateur.

    Bref, je n'ai pas de solution à ce problème.

    Si tu veux une nouvelle session en ouvrant une nouvelle fenêtre de ton navigateur, c'est une option à configurer dans ce dernier
    C'est possible ? Si oui, comment faire (sous IE ou firefox par exemple?)

    EDIT : En fait, avec IE, c'est super simple, puisqu'il suffit de faire "Fichier > Nouvelle Session" . Par contre, pour Firefox ou Chrome, c'est tout de suite moins drôle, vu qu'il faut jongler avec différents profiles, et pour un utilisateur lambda, c'est absolument ingérable.

  4. #4
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Salut
    Citation Envoyé par joKED Voir le message
    le cookie de session ASP.NET est stocké en mémoire du navigateur
    Il me semble bien que c'est plutôt sur le serveur. Quand on dit hors processus c'est le processus du serveur pas celui du client.

    A+

  5. #5
    Membre confirmé Avatar de joKED
    Profil pro
    Imposteur en chef
    Inscrit en
    Février 2006
    Messages
    339
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Imposteur en chef

    Informations forums :
    Inscription : Février 2006
    Messages : 339
    Points : 458
    Points
    458
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    SalutIl me semble bien que c'est plutôt sur le serveur. Quand on dit hors processus c'est le processus du serveur pas celui du client.
    Justement, non. Je parle bien du cookie de session, c'est à dire, celui qui permet au navigateur de stocker l'identifiant de session.
    cf MSDN :
    ASP.NET must track a session ID for each user so that it can map the user to session state information on the server. By default, ASP.NET uses a non-persistent cookie to store the session state. However, if a user has disabled cookies on the browser, session state information cannot be stored in a cookie.
    Les données de la session correspondante sont stockées sur le serveur, hors du processus IIS (via le state server).
    Mon problème se situe donc seulement au niveau de ce cookie côté client. Si j'ouvre deux fenêtres distinctes de mon navigateur, et que je me log sur mon site via l'une, l'autre partage le cookie, et donc peut accéder aux données. Sauf si j'utilise le menu "Nouvelle session" d'IE ou pour Firefox/Chrome, que j'utilise un profil différent.

    Bref, c'est galère, ça ne m'arrange pas, et je sens que je vais être obligé d'utiliser l'URI au lieu du cookie.

  6. #6
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Citation Envoyé par joKED Voir le message
    Justement, non. Je parle bien du cookie de session, c'est à dire, celui qui permet au navigateur de stocker l'identifiant de session.
    cf MSDN : Les données de la session correspondante sont stockées sur le serveur, hors du processus IIS (via le state server).
    Mon problème se situe donc seulement au niveau de ce cookie côté client. Si j'ouvre deux fenêtres distinctes de mon navigateur, et que je me log sur mon site via l'une, l'autre partage le cookie, et donc peut accéder aux données. Sauf si j'utilise le menu "Nouvelle session" d'IE ou pour Firefox/Chrome, que j'utilise un profil différent.

    Bref, c'est galère, ça ne m'arrange pas, et je sens que je vais être obligé d'utiliser l'URI au lieu du cookie.
    C'est comme ça pour tous les sites, asp.net ou non

  7. #7
    Membre confirmé Avatar de joKED
    Profil pro
    Imposteur en chef
    Inscrit en
    Février 2006
    Messages
    339
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Imposteur en chef

    Informations forums :
    Inscription : Février 2006
    Messages : 339
    Points : 458
    Points
    458
    Par défaut
    Merci lutecefalco pour ton aide.

    Le problème vient donc du comportement des navigateurs et non pas d'ASP.NET . En résumé, aucun paramétrage coté serveur, hormis dans IIS7 pour utiliser l'URI à la place du cookie, ne permet de passer outre ce comportement.

    Je marque donc ce post comme résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Session de connexion partage entre PHP-Forms dans Oracle
    Par DoomTheFlame dans le forum Forms
    Réponses: 4
    Dernier message: 06/10/2010, 18h20
  2. [Sessions] Partage de sessions entre PHP et ASP.NET
    Par tomlev dans le forum ASP.NET
    Réponses: 4
    Dernier message: 09/11/2008, 15h41
  3. Tableau partagé entre toutes les sessions
    Par mobscene dans le forum Langage
    Réponses: 1
    Dernier message: 21/12/2006, 13h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo