会话变量不存储值

Ric*_*996 0 c# mysql asp.net session

我有一个会话变量,我试图从另一个变量(字符串)中给出值。但是,当我这样做时,如下所示,它不存储该值。

DataTable table = new DataTable();

MySqlCommand select = new MySqlCommand("SELECT personID, address_addressID from person WHERE email='" + emailAddress + "' and password = '" + passwordR + "'", connect); //brings back the person ID if user details are correct           
using (MySqlDataAdapter adapter = new MySqlDataAdapter(select))
{
    adapter.Fill(table);

        if (table.Rows.Count != 0)
        {

            string sessionVar = table.Rows[0]["personID"].ToString();
            Session["personID"] = sessionVar;
Run Code Online (Sandbox Code Playgroud)

sessionVar 变量是正确的数据,但不会输入到会话中,这是做错了吗?

编辑:我已经包含了一些更多的上下文来制作这个 MVCE。

Nat*_*rad 5

问题总结: 分配数据后
使用时,会发现不会存储。您需要在方法上有一个并使用. 说明: 可以在这里找到一个很好的解释。这是主要部分的片段: Response.Redirect(URL, true);Sessionreturn;Response.Redirect(URL, false);



创建新会话时(即第一次写入 Session 变量时),ASP.NET 会在客户端上设置一个包含会话令牌的易失性 cookie。在所有后续请求中,只要服务器会话和客户端 cookie 未过期,ASP.NET 就可以查看此 cookie 并找到正确的会话。现在,重定向所做的是向客户端发送一个特殊的标头,以便它向服务器请求与它等待的页面不同的页面。服务器端,发送这个头后,Redirect 结束响应。这是一件非常暴力的事情。Response.End 实际上会在页面使用 ThreadAbortException 的任何地方停止它的执行。这里真正发生的是会话令牌在战斗中丢失了。