ASP.net Identity cookie与双因素身份验证不一致

Sam*_*Sam 5 asp.net authentication cookies asp.net-identity

当我设置ASP.net身份并禁用双因素身份验证时,一切似乎都按计划运行.但是,当我启用双因素身份验证时,我注意到以下不一致:

1)如果未选中"记住我"和"记住此浏览器",则会将身份验证cookie创建为会话cookie,并且不会创建记住浏览器cookie.这按预期工作.

2)如果选中"记住我"并取消选中"记住此浏览器",则会将身份验证cookie创建为存储的cookie,并且不会创建记住浏览器cookie.这按预期工作.

3)如果未选中"记住我",并选中"记住此浏览器",则两个cookie都将创建为会话cookie.这不能按预期工作.我希望"记住这个浏览器"来创建一个存储的cookie.关闭浏览器后,您必须在下次登录时使用验证码.

4)如果检查这两个"记住我"和"记住这个浏览器",将创建两个饼干如用2周(或指定的值的期满存储的cookie CookieAuthenticationOptionsStartup.Auth.cs).我希望能够独立于用户身份验证cookie设置浏览器cookie过期.

5)我尝试使用以下代码在VerifyCode操作中为浏览器cookie手动设置更长的到期超时AccountController:

if (model.RememberBrowser)
{
    var user = await UserManager.FindByIdAsync(await SignInManager.GetVerifiedUserIdAsync());
    var rememberBrowserIdentity = AuthenticationManager.CreateTwoFactorRememberBrowserIdentity(user.Id.ToString());
    AuthenticationManager.SignIn(new AuthenticationProperties { IsPersistent = true, ExpiresUtc = DateTime.UtcNow.AddDays(365) }, rememberBrowserIdentity);
 }
Run Code Online (Sandbox Code Playgroud)

这导致身份验证cookie和两个因素记住计算机cookie具有1年的到期日期.我原本期望身份验证cookie尊重配置中的值,并且记住浏览器cookie将在1年后到期.如果您注销并重新登录,则身份验证cookie会正确使用配置中的值.

有没有办法在ASP.net身份或任何解决方案中独立配置这些cookie过期?