我有一个包含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为空,正常吗?怎么解决这个?
谢谢,
答案 0 :(得分:1)
我怀疑您有2个Web应用程序:Core和Web托管在2个不同的域:http://localhost:1234
和http://localhost:5678
。您似乎在第一个Web应用程序中设置会话变量,但此会话仅与第一个应用程序有关。一旦你离开这个应用程序,另一个有一个完全不同的会话。请记住,ASP.NET应用程序之间无法共享会话。有这方面的解决方法,但开箱即用它不起作用。