【问题标题】:Mvc 4 OwinContext Session exipre during executionMvc 4 OwinContext 会话在执行期间过期
【发布时间】: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


    【解决方案1】:

    请检查您在启动配置中的过期设置,例如:

    app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                LoginPath = new PathString("/Account/Login"),
                ExpireTimeSpan = TimeSpan.FromHours(4.0),
                SlidingExpiration = true
            });
    

    您可以阅读更多关于过期的信息 http://www.jamessturtevant.com/posts/ASPNET-Identity-Cookie-Authentication-Timeouts/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-14
      • 1970-01-01
      • 1970-01-01
      • 2019-06-24
      • 2013-10-06
      • 2015-09-25
      • 1970-01-01
      相关资源
      最近更新 更多