Passing Session variable into c#

Hi,

I'm not very familiar with c# but I'm trying to pass a session variable into a c# page abd having problem,

I'm guessing it's something with the private code block

the variable sets in login

 Context.Session("aspnetforumUserNickName") = "Administrator"


and when I try to load the c# page I  get this error

Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:

Line 112:                        {
Line 113:                            //username = Session["aspnetforumUserName"].ToString();
Line 114:                            username = Session["aspnetforumUserNickName"].ToString();
Line 115:
Line 116:                        }


any help would be appreciated





 
protected void Page_PreRender(object sender, EventArgs e)
        {
            cmd.Connection = cn;

            //if (lblVersion != null)
            //{
             //   string dllversion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
            //    lblVersion.Text = dllversion;
            //}

            bool integratedAuthEnabled = Utils.Settings.IntegratedAuthentication;
            //bool isForumPage = (Page is ForumPage);

            if (isForumPage)
            {
                if (CurrentUserID == 0) //not logged in
                {
                    //if (registerLink != null) registerLink.Visible = !integratedAuthEnabled;
                    if (logoutLink != null) logoutLink.Visible = false;
                    if (viewProfileLink != null) viewProfileLink.Visible = false;
                    if (loginTable != null) loginTable.Visible = !integratedAuthEnabled && ShowLoginTable;
                    if (curuserTable != null) curuserTable.Visible = false;
                    if (usersLink != null) usersLink.Visible = false;
                    if (aOpenId != null) aOpenId.Visible = Utils.Settings.EnableOpenId;
                }
                else //logged in
                {
                    //if (registerLink != null) registerLink.Visible = false;
                    //if (logoutLink != null) logoutLink.Visible = !integratedAuthEnabled;
                    if (loginTable != null) loginTable.Visible = false;
                    if (curuserTable != null) curuserTable.Visible = ShowLoginTable;
                    if (usersLink != null) usersLink.Visible = true;
                    //if (editProfileHeaderLink != null) editProfileHeaderLink.Visible = true;

                    if (viewProfileLink != null)
                    {
                        viewProfileLink.Visible = true;
                        string username;
                        //IF "integrated auth" is enabled
                        //AND it is windows-authenctication
                        //then lets remove tha domain name from "domain\user" username
                        if (Page.User is System.Security.Principal.WindowsPrincipal
                            && Utils.Settings.IntegratedAuthentication)
                        {
                            username = Session["aspnetforumUserName"].ToString();
                            username = username.Substring(username.IndexOf("\\") + 1);
                        }
                        else
                        {
                            //username = Session["aspnetforumUserName"].ToString();
                            username = Session["aspnetforumUserNickName"].ToString();

                        }
                        viewProfileLink.InnerHtml = username;
                    }

                    cn.Open();
                    int unreadPrivateMsgs = GetUnreadPersonalMessagesCount();
                    string avatarPath = GetCurrUserAvatarImagePath();
                    cn.Close();

                    if (imgAvatar != null) imgAvatar.Src = avatarPath;
                    if (spanNumMsgs != null)
                    {
                        spanNumMsgs.InnerHtml = unreadPrivateMsgs.ToString();
                        if (unreadPrivateMsgs > 0) spanNumMsgs.Style["font-weight"] = "bold";
                    }
                    if (spanNumUnreadThreads != null)
                    {
                        int updatedTopics = GetUpdatedThreadCount();
                        if (updatedTopics > 0)
                            spanNumUnreadThreads.InnerHtml = "(" + updatedTopics + ")";
                    }
                }
            }

            adminLink.Visible = isForumPage && IsAdministrator && adminLink != null;
            moderLink.Visible = isForumPage && IsModerator && moderLink != null;
        }

Open in new window

TheWebGuy38Asked:
Who is Participating?
 
Pratima PharandeConnect With a Mentor Commented:
check the condition like this

if ( Session["aspnetforumUserNickName"] !=  null )
                                                                                             {
                                                       username = Session["aspnetforumUserNickName"].ToString();


if its null means session isnot set properly                                       }
0
 
Pratima PharandeCommented:
Insert the data to session like this

Session["aspnetforumUserNickName"] = "Administrator"
0
 
TheWebGuy38Author Commented:
this is my vb code setting the session. I'm pretty sure it's correct

 Context.Session("aspnetforumUserID") = AspnetforumUserID
                        Context.Session("aspnetforumUserName") = Dr("UserName")
                        Context.Session("aspnetforumUserNickName") = "Administrator"

is there an issue going from vb to c?
0
Cloud Class® Course: Microsoft Exchange Server

The MCTS: Microsoft Exchange Server 2010 certification validates your skills in supporting the maintenance and administration of the Exchange servers in an enterprise environment. Learn everything you need to know with this course.

 
TheWebGuy38Author Commented:
Very strange.

I added this like you said

         username = Session["aspnetforumUserNickName"].ToString();
                            if ( Session["aspnetforumUserNickName"] !=  null )
                                                                                           
                                                      username = Session["aspnetforumUserNickName"].ToString();
                        }

and it passed the variable
0
 
Todd GerbertIT ConsultantCommented:
How do your VB code and C# code relate to each other...i.e. is the VB code an HttpHandler, and the C# code the website - or do you have two different websites?

I'm also pretty sure your VB code is correct, but I'm also pretty sure checking for null before attempting to read the session variable has no effect on the exception you've cited. Which means either A) It was always working (and was just a rare condition/glitch that threw the exception in the first place) or B) It's not working now (and your test worked because, perhaps, of a condition unique to the debugging environment).
0
 
Pratima PharandeCommented:
ok your Vb cod is right ?

is this are two differnt applications then I don't think you can share session like this

you can try to store the Session object in the database, that's easy to pass the Session object to other application
0
 
TheWebGuy38Author Commented:
It seems to be working now.

I coded my site in .vb, but then I purchased a forum app that I integrated into the site that is c#
I know, a little messy, but it works
0
 
Pratima PharandeCommented:
ok thats good
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.