2

I tried to add session and then i accessed on another page after redirect this always show null

Session.Add("pUser_Name", ds_1.Tables[0].Rows[0]["User_Name"].ToString());
HttpContext.Current.ApplicationInstance.CompleteRequest();
Response.Redirect("DashBoard.aspx", false);

here on another page i am accessing like this

protected void Page_Load(object sender, EventArgs e)
{
     if (Session["pUser_Name"] == null)  ////here is error NULL
     {

         Response.Redirect("Admin.aspx");
     }
 }

I tried

protected override void OnInit(EventArgs e)
{
    if (Session["pUser_Name"] == null)
    {
        Response.Redirect("Admin.aspx");
    }
    base.OnInit(e);
}

and also

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DashBoard.aspx.cs" Inherits="SC.DashBoard" EnableTheming="true"
Theme="Theme1" EnableSessionState="True" %>

and Admin page where assigning value to session

 <%@ Page Language="C#" AutoEventWireup="true" EnableSessionState="True" CodeBehind="Admin.aspx.cs" Inherits="SC.Admin" %>

and web.config file

<system.web>
   <compilation debug="true" targetFramework="4.0"/>
   <sessionState timeout="12000"/>
</system.web>

but still facing same session is null

Romano Zumbé
  • 7,893
  • 4
  • 33
  • 55
Nouman Arshad
  • 79
  • 2
  • 11

1 Answers1

0

Based on this answer which basically refers to this msdn article about SessionID, you might need to initialise your session object on Session_Start:

protected void Session_Start(Object sender, EventArgs e) 
{
    Session["init"] = 0;
}

This is required when session state is stored in a cookie, which you currently use based on your web.config. The reason is that ASP.NET does not save session up until its first usage and as a result a new SessionID is generated with each new page request which is happening when you Response.Redirect to another page.

Sakis
  • 141
  • 6