Asp Identity CookieAuthenticationOptions ExpireTimeSpan未设置

时间:2015-05-18 20:08:16

标签: asp.net cookies asp.net-identity asp.net-identity-2

我正在使用ASP.NET Identity并在Startup.Auth中有以下内容

app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            LoginPath = new PathString("/Account/Login"),
            ExpireTimeSpan = TimeSpan.FromDays(30),
            SlidingExpiration = false,
            Provider = new CookieAuthenticationProvider
            {
               OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, User, int>(
                    validateInterval: TimeSpan.FromMinutes(5),
                    regenerateIdentityCallback: (manager, user) =>
                        user.GenerateUserIdentityAsync(manager),
                    getUserIdCallback: (id) => (id.GetUserId<int>()))
            } 
        });

我希望用户每30天重新登录一次,因此我将ExpireTimeSpan属性设置为TimeSpan.FromDays(30)。但是,当我通过Chrome设置检查Cookie到期日期时,它会设置为两周。根据{{​​3}},默认为14天。我确保在更改ExpireTimeSpan之前删除任何现有的cookie。

CookieAuthenticationOptions是Microsoft.Owin.Security.Cookies命名空间的一部分,我的dll版本为3.0.0.0。

我也尝试将FromDays值设置为小数,如this stackoverflow question中所述。那也行不通。

如何解决此问题的任何建议将不胜感激。谢谢。

更新:我启用了ASP.NET身份2因素身份验证,其中包含用户名&amp;密码登录页面带有&#34;记住我&#34;复选框和电话代码验证页面带有&#34;记住浏览器&#34;复选框。当我检查两个记住复选框时,即使我将其设置为30,Cookie过期也会设置为14天。当我选中第一个记住复选框(用户名和密码)时,Cookie过期设置为我指定的值。

所以看起来像#34;记住浏览器&#34;覆盖ExpireTimeSpan属性值。不幸的是,我想要&#34;记住浏览器&#34;也会在30天后过期。两个星期经常需要重新输入我的电话代码。作为旁注,我遇到这个问题的原因是因为我无法在不检查两个记住复选框的情况下让Remember Browser cookie超过浏览器会话,如此stackoverflow中所述问题this post

0 个答案:

没有答案