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 :

Perte variable de session


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Par défaut Perte variable de session
    Bonjour à tous,

    Dans mon site sous C#, j'inscrit l'ID d'un utilisateur dans une variable de session. Après ce remplissage de cette variable, je l'affiche en Response.Write :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
          if (codes.UTILISATEUR_Connexion_Autorisee(Connexion.UserName, Connexion.Password))
            {
                Session["CDV_ID_User"] = codes.UTILISATEUR_ID(Connexion.UserName, Connexion.Password);
                if (Connexion.RememberMeSet)
                {
                    Response.Cookies["CDV_User"]["email"] = Connexion.UserName;
                    Response.Cookies["CDV_User"]["mdp"] = Connexion.Password;
                }
     
                Response.Write(Session["CDV_ID_User"].ToString());
            }
            else
            {
     
            }
    Cela fonctionne parfaitement, il m'affiche l'ID de l'utilisateur authentifié. Le problème, c'est que si j'actualise la page, ou si j'effectue la moindre action (clic sur bouton, redirection), la variable se vide, je n'y ai plus accès...

    Pouvez-vous m'aider ?

    Merci.

  2. #2
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    Montres ton code c# en entier.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
     
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                Response.Write(Session["CDV_ID_User"].ToString());
            }
            catch
            {
            }
     
        }
        protected void Connexion_Authenticate(object sender, AuthenticateEventArgs e)
        {
            if (codes.UTILISATEUR_Connexion_Autorisee(Connexion.UserName, Connexion.Password))
            {
                Session["CDV_ID_User"] = codes.UTILISATEUR_ID(Connexion.UserName, Connexion.Password);
                if (Connexion.RememberMeSet)
                {
                    Response.Cookies["CDV_User"]["email"] = Connexion.UserName;
                    Response.Cookies["CDV_User"]["mdp"] = Connexion.Password;
                }
     
                Response.Write(Session["CDV_ID_User"].ToString());
            }
            else
            {
     
            }
        }
    }

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Par défaut
    Le connexion_Authenticate correspond à la procédure lors du clic sur "Se connecter" via le contrôle ASP.net "Login".

    Donc lorsque je me connecte, la variable de session se remplie bien, il me renvoie l'ID de l'utilisateur, puis lorsque j'actualise la page, plus rien...

  5. #5
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    met un point d'arret dans Visual studio sur cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Session["CDV_ID_User"] = codes.UTILISATEUR_ID(Connexion.UserName, Connexion.Password);
    C'est le seul endroit ou tu retouches a ta variable de session. Verifies que si tu passes dans cette fonction, tu ne mets pas null dans cette variable.

    Ensuite, pour les cookies d'autentification, jettes un coup d'oeil du coté de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FormsAuthentication.SetAuthCookie(UserName, false)
    et son pendant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FormsAuthentication.SignOut();
    Ca pourrait t'ête utile maintenant ou plus tard.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Par défaut
    non il ne met pas de "null" car il me renvoie bien le bon ID après identification.

    Pour le FormsAuthentication.SetAuthCookie(UserName, false), comment faire ensuite pour lire ce cookie depuis une autre page du site ?

    Y a t-il quelque chose à régler dans web.config pour utiliser cette méthode ?

    Merci.

Discussions similaires

  1. Perte variables de session IE8
    Par Arnaud69100 dans le forum Langage
    Réponses: 7
    Dernier message: 19/11/2010, 20h40
  2. Perte des variables de sessions
    Par Dayom dans le forum Langage
    Réponses: 12
    Dernier message: 17/07/2006, 11h04
  3. Réponses: 32
    Dernier message: 20/03/2006, 14h23
  4. Perte d'une variable de session
    Par gregal dans le forum Langage
    Réponses: 2
    Dernier message: 17/03/2006, 08h35

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