【发布时间】:2015-04-09 06:35:58
【问题描述】:
我在mvc 4 开发了使用代码优先实体框架的网站。我在登录我的网站时使用了 HttpContext.GetOwinContext().SignIn。
HttpContext.GetOwinContext().SignIn(user, model.RememberMe);
HttpContext.SetSession(WebConstants.SessionUser, user);
当我登录它存储user 会话。我有一个Index 视图。在该视图上,我创建了六到七个菜单标签。第一次打开时,它会加载第一个菜单选项卡。当它加载时,它会从表中获取一些数据并显示在视图中。所以每个选项卡都有一些数据。我创建了一个basecontroller。在这个控制器中,我正在访问会话数据。
这是我的basecontroller
protected Domain.ClientAgg.User GetUserContext()
{
return HttpContext.GetSession<SN.Domain.ClientAgg.User>(WebConstants.SessionUser);
}
protected string GetUserClientShortname()
{
return HttpContext.GetSession<SN.Application.DTO.UserContext>(WebConstants.SessionUser).Client.ShortName;
}
protected int GetUserClientId()
{
return HttpContext.GetSession<SN.Application.DTO.UserContext>(WebConstants.SessionUser).Client.Id;
}
protected SN.Application.DTO.UserContext GetClientUserContext()
{
return HttpContext.GetSession<SN.Application.DTO.UserContext>(WebConstants.SessionUser);
}
.....
......
......
我正在使用这种方法从表格中获取数据并将其显示在选项卡视图中。我的问题是,如果我在这些选项卡之间不断导航,会话就会过期。我认为如果当前进程正在执行,并且我单击其他选项卡,则会出现此问题,因此当时执行进程会中断。谁能告诉我如何解决这个问题?
【问题讨论】:
标签: c# asp.net-mvc-4 session ef-code-first