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 :

initialisation et récupération de variable de session


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 177
    Points : 86
    Points
    86
    Par défaut initialisation et récupération de variable de session
    Slt à tous,

    Je suis novice en asp.net c# et j'aimerai savoir si les variables de session marche comme en php.
    En php pour pouvoir récupérer les variable de session il faut mettre en haut de la page Est ce pareil dans les pages .cs?

    Dans ma page test.cs voila comment j'initialise ma variable de session:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HttpContext.Current.Session["client"] = arrData[2];
    Comment faire pour la récupérer dans ma page test2.cs ?

    Merci

  2. #2
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Bonjour,

    Je t'invite à regarder su Google ou MSDN un tuto sur l'objet Session mais aussi Application histoire d'avoir un bon aperçu.

    Ce n'est pas le même mécanisme qu'en PHP. D'une part, ta Session est créée automatiquement par ASP.NET (tu as un event SessionStart dans le Global.asax si tu veux réaliser certaines opérations au démarrage de la Session). Tu n'as donc pas à appeler session_start().

    Ensuite, pour consulter ta valeur "client" tu peux simplement regarder comme ceci : Session["client"].

    Attention toutefois, tout est stocké sous forme d'object, donc lorsque tu lis une valeur il faut faire un cast vers le bon type.

    En espérant t'avoir aidé.

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 177
    Points : 86
    Points
    86
    Par défaut
    J'ai fait qlq test via google et msdn mais qlq chose doit méchaper

    J'ai fait un test sur la page ou j'initialise ma variable de session mais je n'arrive pas à la récupérer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    HttpContext.Current.Session["log"] = arrData[0];
    string lastName = (string)(Session["log"]);
    C'est peut être le cast que je fais mal!?

    ps:Quand tu parles de cast c'est bien une convertion?

    merci

  4. #4
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Ton cast est correct. Il y a plusieurs façons de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    string lastName = (string) Session["log"];
    string lastName = Session["log"].ToString();
    string lastName = Session["log"] as string;
    Tu as vérifié en débug la valeur de arrData[0] ? Tu es sûr qu'elle n'est pas nulle ou vide ?

  5. #5
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 177
    Points : 86
    Points
    86
    Par défaut
    elle reçoit bien des valeurs pourtant!!

    Il n'y a pas de Global.asax en asp.net!?

    voici l'erreur que ça me donne (ps:en soulignant le mot "session")

    Erreur 28 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'System.Web.UI.Page.Session.get'

    T'as une idée?

  6. #6
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Citation Envoyé par max33370 Voir le message
    elle reçoit bien des valeurs pourtant!!
    A quel endroit tu essayes de lire ta valeur dans la Session ?

    Citation Envoyé par max33370 Voir le message
    Il n'y a pas de Global.asax en asp.net!?
    Si et lorsque tu créé une Web Application il est dans le projet par défaut. Quelle version de Visual Studio utilises-tu et qu'a tu créé comme type de projet ?


    As-tu bien la Session activité dans ton fichier web.config ? SessionEnable=True ?

  7. #7
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 177
    Points : 86
    Points
    86
    Par défaut
    A quel endroit tu essayes de lire ta valeur dans la Session ?
    Lorsque je me log

    2008 9.0
    J'ai crée un projet asp.net c#, je sais pas si c'est cela que tu attends comme réponse.

    Dans web config jne vois pas: SessionEnable=True

    Il est donc par défault non!?

  8. #8
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Citation Envoyé par max33370 Voir le message
    Lorsque je me log
    C'est à dire ? Tu as une page Login ? Tu essayes de lire la valeur dans ton Page_Load ?
    Et à quel moment enregistres-tu la valeur ?

    Citation Envoyé par max33370 Voir le message
    J'ai crée un projet asp.net c#, je sais pas si c'est cela que tu attends comme réponse.
    Pas tout à fait. Il y a deux types de projets ASP.NET : WebSite et WebApplication. Tu peux voir les différences ici.

    Citation Envoyé par max33370 Voir le message
    Dans web config jne vois pas: SessionEnable=True
    Il est donc par défault non!?
    Je pense que pour un projet web créé avec VS, la session est activée par défaut. Histoire d'être sûr, tu peux rajouter enableSessionState="true" dans ton Web.Config comme indiqué ci-dessous.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <system.web>
            <pages enableSessionState="true" enableViewState="true">
                <controls>
                    <add tagPrefix="asp" .....>
                </controls>
            </pages>
    ....
    Si au final ça ne passe vraiment pas. Copie ton code ici (les parties qui nous intéressent : enregistrement en Session, lecture en Session, etc.).

    En espérant t'avoir aidé.

  9. #9
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 177
    Points : 86
    Points
    86
    Par défaut
    Dac, c'est bon ça marche, merci beaucoup pour ton aide!
    voila ce que j'ai fait tous bêtement:

    dans la page ou j'initialise ma variable de session (dans default.aspx.cs):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HttpContext.Current.Session["log"] = arrData[0];
    et quand je veux la récupérer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String test = HttpContext.Current.Session["log"].ToString();

    c'est une application WebSite .
    Oui le service session est bien par défault, j'ai ajouté ton code puis je l'ai enlevé et ça marche.

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

Discussions similaires

  1. Problème de récupèration de variable de session
    Par l.laurent60 dans le forum Langage
    Réponses: 2
    Dernier message: 10/08/2010, 16h28
  2. récupération de variable de sessions
    Par Junior_jef dans le forum Langage
    Réponses: 8
    Dernier message: 21/03/2008, 15h29
  3. Récupération de variable de session
    Par cel.Saint-Louis dans le forum Langage
    Réponses: 4
    Dernier message: 02/12/2007, 04h17
  4. Réponses: 7
    Dernier message: 23/04/2006, 01h38
  5. Réponses: 6
    Dernier message: 04/04/2006, 13h12

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