是否在ASP.NET标识中不推荐使用Session.SessionTimeout

时间:2014-10-20 12:29:04

标签: asp.net-mvc asp.net-mvc-5 asp.net-identity session-timeout global-asax

以下代码似乎不再适用于ASP.NET身份? 这是对的吗?

Global.asax中

protected void Session_Start(object sender, EventArgs e)
{
    Session.Timeout = 5; // It has no impact to Session
}

此代码仅定义会话超时。

STARTUP.AUTH.CS

public void ConfigureAuth(IAppBuilder app)
{            
    var sessionTimeout = 20; // 

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

1 个答案:

答案 0 :(得分:5)

Cookie ExpireTimeSpan定义身份验证Cookie的生命周期。

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    ExpireTimeSpan = TimeSpan.FromSeconds(30),
    // other stuff
});            

这将使身份验证cookie在30秒内无效。但它不会为用户重新加载页面,只会在下次请求时将用户重定向到登录页面。

如果您需要在Cookie过期时自动重新加载页面,您需要在浏览器中使用一些JavaScript来检测会话何时到期。

不是真正的答案,因为你已经有了问题。只是一个扩展的评论 - )