asp mvc会话变量

时间:2010-12-29 09:58:49

标签: asp.net asp.net-mvc

需要在服务器上存储客户端的一些auth信息,以便在2页之间共享。 不管怎样,会话,cookie,tempdata,我尝试了一切,没有任何作用,例如:

public ActionResult CheckIn(string pass)
    {
        if (System.Configuration.ConfigurationManager.AppSettings["pass"] == pass)
        {
            HttpContext.Session.Add("admin", "yes");
        }
        return View();
    } 
public ActionResult Helper() {
        if (HttpContext.Session["admin"] != null)
        {
            if (HttpContext.Session["admin"].ToString() == "yes")
                return PartialView("InitConfig");
            else
                return PartialView("StationLogics");
        }
        else
            return PartialView("StationLogics");
    }

并且我在helper方法中的会话中始终为null。我做错了什么?

2 个答案:

答案 0 :(得分:1)

您是否尝试过HttpContext.Current.Session

PS。你这样做实际上不是很好,你应该在你的申请中重新考虑它。

答案 1 :(得分:0)

您确定满足所有if条件吗?尝试一个简单的例子:

public ActionResult CheckIn()
{
    Session["foo"] = "bar";
    return View();
}

public ActionResult Helper() 
{
    var foo = Session["foo"]; 
    if (foo == null)        
    {
        // this won't be null if you called the CheckIn method first
    }
    return View();
}

首先调用CheckIn操作以在会话中存储值,然后调用Helper操作。除非您在浏览器中禁用了此ASP.NET应用程序或cookie的会话,否则您应该获得正确的值。