CookieAuthenticationOptions,ExpireTimeSpan不起作用

时间:2013-11-26 19:16:33

标签: authentication asp.net-mvc-5

我有以下代码:

    public void ConfigureAuth(IAppBuilder app)
    {
        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            ExpireTimeSpan = System.TimeSpan.FromMinutes(1),
            LoginPath = new PathString("/Account/Login"),
            LogoutPath = new PathString("/Account/LogOff")
        });

但登录会话有效超过1分钟。此外,时间到期时不会调用LogoutPath。为什么呢?

2 个答案:

答案 0 :(得分:23)

它确实会过期。

确保您没有任何后台ajax活动,因为它扩展了会话(默认情况下SlidingExpiration为真)。

此外,我必须在将ExpireTimeSpanthe default 14 days更改为较小的值后手动删除旧Cookie。

答案 1 :(得分:0)

您必须将 IsPersistent 设置为true,否则就不会运行代码

    ClaimsIdentity claimsIdentity = new ClaimsIdentity(Claims, CookieAuthenticationDefaults.AuthenticationScheme);

                var authProperties = new AuthenticationProperties
                {
                    IsPersistent = true

                };

                await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity), authProperties);