登录cookie在到期前消失

时间:2016-05-24 06:28:05

标签: c# asp.net authentication cookies owin

我正在使用owin Cookie身份验证来保持用户登录。但我注意到Cookie从客户端浏览器中消失而没有过期。

var identity = new ClaimsIdentity(DefaultAuthenticationTypes.ApplicationCookie);

        var properties = new AuthenticationProperties() {
            IssuedUtc = DateTime.UtcNow,
            ExpiresUtc = DateTime.UtcNow.Add(Startup.CookieAuthenticationOptions.ExpireTimeSpan),
            IsPersistent = true
        };

        HttpContext.Current.GetOwinContext().Authentication.SignIn(properties, identity);

启动:

public class Startup {
    public void Configuration(IAppBuilder app) {
        CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;
        GlobalHost.Configuration.DefaultMessageBufferSize = 100;
        ConfigureCookie(app);
        app.MapSignalR();
    }

    public static CookieAuthenticationOptions CookieAuthenticationOptions { get; private set; }

    public void ConfigureCookie(IAppBuilder app) {
        CookieAuthenticationOptions = new CookieAuthenticationOptions() {
            ExpireTimeSpan = TimeSpan.FromDays(7),
            CookieSecure = CookieSecureOption.SameAsRequest,
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            CookieName = "TokenHandler"
        };

        app.UseCookieAuthentication(CookieAuthenticationOptions);
    }
}

有没有人有任何线索?我并不是百分之百确定这一点,但这就是我得到的感觉,因为我现在需要签署更多信息。网站的新版本是否可能导致这种情况?

1 个答案:

答案 0 :(得分:1)

假设您确定cookie已正确创建(您可以在浏览器分析器上看到它并且到期日期是正确的),并且您也确信您可以毫无问题地浏览网站... ..

测试:检查您是否仅在关闭浏览器后松开cookie ...如果是这种情况可能是浏览器自行设置的原因。某些设置允许不从" session"到"会话"。