会话变量在页面之间设置为null

时间:2012-06-20 06:19:37

标签: asp.net session-variables

我有一个包含2个项目的解决方案:Core和Web。在Core中,我管理会话,我做了一些事情,我称之为:

public void SetLog()
{
    HttpContext.Current.Session["Logged"] = true;
}

这是工作。

当我更改页面时(我使用ASP.NET 4.0默认模板进行测试),我单击“关于”链接并调用此方法:

public bool IsLogged()
{
    if (HttpContext.Current.Session["Logged"] == null)
        return false;

    return true;
}

在“关于”页面上,Session为空,正常吗?怎么解决这个?

谢谢,

1 个答案:

答案 0 :(得分:1)

我怀疑您有2个Web应用程序:Core和Web托管在2个不同的域:http://localhost:1234http://localhost:5678。您似乎在第一个Web应用程序中设置会话变量,但此会话仅与第一个应用程序有关。一旦你离开这个应用程序,另一个有一个完全不同的会话。请记住,ASP.NET应用程序之间无法共享会话。有这方面的解决方法,但开箱即用它不起作用。