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 :

Variable de session non sauvegardée


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Par défaut Variable de session non sauvegardée
    Bonjour tout le monde,

    Je travail avec des variables de session pour passer entre deux pages des informations.

    J'ai créer une fonction pour centraliser mes redirections avec message que j'apelle ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Utility.RedirectionWithText(Page, "~/test/", "Votre demande a bien été envoyée", "Confirmation");
    et voici monde code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class Utility
    {
        public Utility()
        {
     
        }
     
        static public void RedirectionWithText(Page Page, string url)
        {
            Page.Session.Add("Redirect-URL", Page.ResolveUrl(url));
            Page.Response.Redirect(Page.ResolveUrl("~/Ok.aspx"));
        }
    }
    Si je fais un break juste avant le Page.response.redirection(...), je vois que ma session à bien le "Redirect-URL" mais quand je suis sur la page ~/Ok.aspx, je vois correctemen ma session sauf que "Redirect-URL" n'est pas présent. C'est comme si je travaillais sur une copie de ma session quand je le passe en paramètre alors que le c# travail avec une sorte de pointeur non ?

    J'ai tenté d'utiliser HttpContext.Current.Session à la place de Page.Session mais le résultat est le même.

    Pouvez-vous me dire si je dois faire une sorte de Session.Save() pour forcer la sauvegarde de la session où alors il faut revoir toute ma méthodologie ?

    Merci d'avance

  2. #2
    Membre expérimenté Avatar de g_tarik0010
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 186
    Par défaut
    Essaye plutot avec HttpContext.Current.Session.Add("taclé", "tavaleur");

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Par défaut
    J'ai tenté cette solution mais elle donne le même résultat

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Je ne suis pas du tout un pro de asp.net mais essaye de mettre un break point sur l'event de fin de session dans le global.asax et vérifie que tu n'y passes pas.

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Par défaut
    Quand j'arrive sur ma 2éme page, j'ai encore toutes les autres var de session qui sont déclarées à l'ouverture de session dans le global.asax. Il ne cloture donc pas ma session.

    C'est vraiment juste la var ajoutée par ma classe Utility.

    Quand je fais un break juste avant le "Page.Response". J'ai bien l'enssemble des variables de session au complet mais il semble ne pas sauvegarder les derniéres modification.

    Merci pour toutes ces pistes !

  6. #6
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Il faut bien comprendre le mécanisme des sessions.
    Les sessions ca se base sur les cookies. Quand tu mets quelque chose en session il y a donc un cookie qui est crée chez le client. Or la création de ce cookie se fait via les header de la réponse http. Ce qui se passe ici, c'est qu'en envoyant un Redirect, il envoie une réponse de http 302 de redirection mais cette réponse soit elle ne contient pas le setcookie ou alors il n'est pas interprété par le navigateur (je sais plus trop en détails).
    Conclusion, si tu settes qqchose, ne fait pas de redirect juste derrière.

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

Discussions similaires

  1. Réponses: 27
    Dernier message: 16/04/2013, 11h09
  2. variable de Session non trouvée
    Par reman dans le forum Langage
    Réponses: 6
    Dernier message: 07/01/2009, 10h25
  3. Variable de sessions non transférées
    Par MaT$oN dans le forum Langage
    Réponses: 3
    Dernier message: 27/06/2008, 14h04
  4. Variables de sessions non transmises en local
    Par cerveza dans le forum Langage
    Réponses: 5
    Dernier message: 31/12/2007, 21h34
  5. Variable de session non rafraîchie
    Par Akela dans le forum Langage
    Réponses: 6
    Dernier message: 17/10/2007, 15h44

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