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 :

Mélange de sessions


Sujet :

ASP.NET

  1. #1
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut Mélange de sessions
    Bonjour à tous,

    Je travaille actuellement sur un projet consistant en la modélisation d'un questionnaire.

    Lorsqu'un utilisateur se connecte, un objet contenant ses réponses aux questions est créé et placé dans une variable de session. Cet objet permet, lors de retour en arrière dans le questionnaire, de remettre les réponses déjà fournies par l'utilisateur.

    Jusque là, tout fonctionne correctement, seulement, le hic, si un plantage survient durant le questionnaire (il est encore en phase de développement donc cela arrive), tous les résultats encodés par l'utilisateur deviennent subitement accessibles aux autres utilisateurs.

    Je m'explique, l'utilisateur un répond au trois premières questions puis plantage.

    Un autre utilisateur lance le questionnaire quelques secondes après et hop, comme par magie, les questions qu'il voit sont préremplies avec les réponses fournies pas l'utilisateur précédent (qui pourtant sont stockées dans une variable de session).

    Quelqu'un à une idée pour expliquer ce phénomène ?

    D'avance merci.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Par défaut
    Sur le meme poste et meme navigateur?

  3. #3
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Non, justemment, c'est là toute la "magie", c'est que cela se passe sur des postes différents et même des navigateurs différents :-)

    Je met un :-) car je n'arrive vraiment pas à comprendre ce "miracle"!

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Par défaut
    Que signifie "plantage" au fait?

    Parce que en .net fait vraiment y aller pour faire planter quelque chose

  5. #5
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Quand je parle de plantage, je veux dire de façon générique une exception produite par un morceau de code.

    Cela ne devrait plus arriver à terme, mais cela a eu le mérite de me mettre ce problème de session en évidence.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Par défaut
    Bonjour à tous,

    Je me permets de relancer cette discussion car c'est un problème très similaire qui m'a amené jusqu'ici.
    Dans mon cas, j'ai une appli web de gestion de contenu où les utilisateurs se connectent via login et mdp par un extranet et arrivent sur le site.
    A ce moment là, j'enregistre en session leur login et leur ouvre l'interface d'administration. L'utilisateur peut alors ajouter des pages et construire des paragraphes dans des tables de la bdd dont les noms sont dynamiques :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    "pages" & HttpContext.Current.Session.SessionID.Substring(0, 6)
    "paragraphes" & HttpContext.Current.Session.SessionID.Substring(0, 6)
    Donc pas de problème de confusions de données, puis d'un coup et de manière complètement aléatoire, un utilisateur se retrouve en cours de modification avec la page d'un autre et le login d'un autre sans que je parvienne à m'expliquer ce phénomène.

    La seule piste que j'ai trouvé :
    C'est pas très malin de ma part mais j'ai écrit une classe App_Code/Session.vb pour la vérif du profil de mon utilisateur. Il y a peut-être conflit entre ces deux objets Session.

    Quoi qu'il en soit je commence à tourner en rond sans trop comprendre ce qui se passe.

    Si quelqu'un peut m'expliquer la chose, je suis preneur.

  7. #7
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Si tu ne te bases que sur les 6 premiers caractères de l'identifiant de session, il ne me semble pas impossible qu'à un moment donné, ils soient les mêmes pour deux connexions différentes (je ne sais pas si statistiquement parlant, cela arrive fréquemment ou pas), ce qui pourrait provoquer le problème.. du moins si je l'ai bien compris.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Par défaut
    Merci de ta réponse, mais je doute que le problème vienne de là.
    Pour détailler un peu, en effet je ne me base que sur les 6 premiers caractères pour la construction de mes tables (dynamiques "pseudo-temporaire") en base mais aussi je stocke le login d'identification de l'internaute.
    Sur chacune de mes pages, j'affiche pour les tests l' id de la session et ce fameux login. Et de manière aléatoire, un utilisateur va afficher l'id de session (complet) et le login d'un autre aussi connecté sans que je sache pourquoi.

    Le problème c'est que j'ai développé une application .net sans pour autant maitriser l'environnement ce qui m'a mis bcp de batons dans les roues au départ. Je fais cette précision car je suis peut-être passé à côté de quelquechose d'essentiel dans la conf des gestions de session.

    Merci.

  9. #9
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Dans mon cas, ce que j'avais pris pour un mélange de Session était en fait une écriture dans un objet singleton qui ne devait pas avoir lieu... Je ne l'ai trouvé que difficilement en faisant du pas à pas et en mettant des espions sur tous les points sensibles...

    Ce genre d'erreur est très difficile à trouver.. Il faut reparcourir ton code pas à pas.. le débogueur de vs est très utilse, il faut en abuser... et essayer de trouver à quel moment cela se fait...

    Si jamais, pour info, quand le débogueur est actif dans VS, et que tu te connectes au site avec un second browser, le débugging sera également actif pour ce site là :-)

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Par défaut
    Bonjour,

    Je viens faire un petit retour sur ma situation des derniers jours.
    Je confirme tout haut ce que je n'ai jamais cessé de penser tout bas : rien ne sert de revenir sur les principes fondamentaux du développement web, les mélanges de session ça n'existe pas...
    Merci Pongten pour la technique du debug VsStudio, effectivement j'avais une boulette dans mon code concernant un objet user déclaré en "Protected Shared ..." ce qui à mon sens fonctionne comme une variable d'application. Et les différentes traces que je mettais un peu partout ne reflétais pas l'état réel de la session en cours...
    Tant que mon cher employeur ne me paiera pas une formation sur l'environnement dotnet et ces fondamentaux, je continuerais à galérer sur des trucs de débutant.

    Maintenant tout fonctionne parfaitement...

Discussions similaires

  1. Mélange de sessions sur Tomcat
    Par oum dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 16/07/2010, 10h51
  2. [PHP 5.2] Mélange de sessions
    Par pas30 dans le forum Langage
    Réponses: 2
    Dernier message: 06/01/2010, 22h19
  3. Mélange zend session et autre gestion de session
    Par fadex dans le forum Autres composants
    Réponses: 1
    Dernier message: 06/07/2009, 18h57
  4. Problème de selection (mélange) de session
    Par CAML dans le forum ASP.NET
    Réponses: 5
    Dernier message: 15/05/2009, 13h18
  5. Mélange de sessions - problème hébergeur
    Par pas30 dans le forum Langage
    Réponses: 9
    Dernier message: 16/09/2007, 23h43

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