从另一个控制器检索会话变量

时间:2017-03-21 18:25:07

标签: c# asp.net-mvc session-variables

是否可以从创建它的不同控制器中检索Session变量?

我在我的帐户控制器

中创建了这个
System.Web.HttpContext.Current.Session["Session"] = sessionGuid;

来自不同的控制器我正在尝试

if (System.Web.HttpContext.Current.Session["Session"] != null)
{
    return Json(System.Web.HttpContext.Current.Session["Session"].ToString());
}
    return null;

始终返回null

作为测试我将一些代码添加到我的Login控制器中,在那部分我确实从中获取了值

if (System.Web.HttpContext.Current.Session["Session"] != null)
    {
        test = System.Web.HttpContext.Current.Session["Session"].ToString();
    }
        else
    {
        test = "no";
    }

我总是得到实际的结果,而不是" no"部分代码

2 个答案:

答案 0 :(得分:0)

如果控制器在同一个网站/虚拟目录中然后是YES,但是如果你说你的会话是在另一个站点创建的,并且你试图在属于不同站点的控制器中访问它,那么你就不能。

答案 1 :(得分:0)

由于某种原因,它与我必须访问会话的方式不同,在另一个控制器上,我改为使用此代码并且工作正常

if (HttpContext.Session["Session"] != null)
{
  return Json(HttpContext.Session["Session"].ToString());
}
return null;