0

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

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;
}

在关于页面上,会话为空,正常吗?如何解决这个问题?

谢谢,

4

1 回答 1

1

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

于 2012-06-20T06:24:10.987 回答