6 votes

Variable de session ASP / C# - La référence à un objet n'est pas définie comme une instance d'un objet.

Je suis quelque peu novice en ASP / C# et j'ai un problème (probablement simple) avec les variables de session. Mon projet possède un Site.Master dans lequel les variables de session sont définies par la méthode Page_Load de la manière suivante :

    protected void Page_Load(object sender, EventArgs e)
    {

        if ((Session)["UserID"]==null || (Session)["UserID"].ToString() == "")
        {
            (Session)["UserID"] = HttpContext.Current.User.Identity.Name.ToString();
            SqlDataReader dr = Sprocs.GetPermissionGroups();

            string groupList = "";

            while (dr.Read())
            {
            if (groupList != "")
                    {
                        groupList = groupList + "|" + dr["WG_Group"].ToString();
                    }
                    else
                    {
                        groupList = dr["WG_Group"].ToString();
                    }
            }
            dr.Close();

            if (groupList != "")
            {
                (Session)["UserGroups"] = groupList;
            }
        }

Ça marche. Si je transfère la variable de session "UserGroups" vers une étiquette ou autre dans cette méthode, le contenu de la variable s'affiche correctement.

Mon problème se situe donc dans une autre page (disons default.aspx) lorsque j'essaie d'accéder à cette même variable de session. Dans la méthode Page_Load de l'autre page, j'essaie de faire ceci :

    protected void Page_Load(object sender, EventArgs e)
    {
            string GroupList = HttpContext.Current.Session["UserGroups"].ToString();
            //some code with the variables here
    }

Cela échoue toujours avec une erreur "Object reference not set to an instance of an object". Est-ce que je me trompe dans la variable Session ? J'ai essayé

string GroupList = Session["UserGroups"].ToString(); 

cela donne également lieu à la même erreur.

string GroupList = (string)(Session["UserGroups"]); 

Cela renvoie toujours une chaîne vide.

Qu'est-ce que je fais de mal ?

Gracias.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X