0

I have one solution, which has multiple projects in it, in which some
projects are developed using web form, MVC. I need to share the session data between these projects. For this, i have used SQLServer Mode in session state. I am able to store the session data into database, but i am not able to retrieve the sessions data. So any help will be appriciated. Thanks in advance.

This is what i have tried to fetch data from ASPState database

public ActionResult Home()
{
    ViewBag.Result =Session["username"].ToString();

    SqlCommand cmd = new SqlCommand("select SessionId from 
     ASPStateTempSessions", con);

    byte[] bytdata = new byte[50];
    con.Open();
    SqlDataReader dr = cmd.ExecuteReader();
    var list = new List<LoginUser>();
    if(dr.HasRows)
    {
        while(dr.Read())
        {
            //obj=dr["SessionId"];
            string obj = dr["SessionId"].ToString();
            bytdata = System.Text.Encoding.UTF8.GetBytes(obj);
            System.IO.MemoryStream ms = new System.IO.MemoryStream(bytdata);
                BinaryFormatter bin = new BinaryFormatter();
                //bin.Serialize(ms, bytdata);
                //list = (List<LoginUser>)bin.Deserialize(ms);

                string session = Convert.ToString(bin.Deserialize(ms));
        }
    }
    ViewBag.Data = list;
    return View();
}

This is what i have configured ion Web.config

     <sessionState mode="SQLServer" customProvider="DefaultSessionProvider">
  <providers>
    <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="SessionSqlCon" cookieless="false" timeout="10" />
  </providers>
</sessionState>

0 Answers0