控制cookie生命周期的三个属性中哪一个优先



通过将AuthenticationProperties.IsPersistent设置为true,我们使认证cookie持久,这样用户在开始新会话

时不必再次认证。

CookieAuthenticationOptions.ExpireTimeSpans控制cookie的有效期。

AuthenticationProperties.ExpiresUtc设置认证截止日期

a)我不确定"认证的截止日期"是什么意思。也许上面的引用是说ExpiresUtc控制在用户再次被要求登录之前认证cookie可以用于认证的时间?

b)如果我在a)中的假设是正确的,那么当到达ExpireUtc时,那么cookie将过期,即使:

  • IsPersistent == true

  • 会话尚未过期

  • cookie尚未超过ExpireTimeSpan设置的寿命?

c)如果IsPersistent设置为false,那么一旦会话过期cookie不再有效,即使:

  • cookie尚未超过ExpireTimeSpan

  • 设定的寿命
  • 认证尚未达到ExpireUtc设置的生命周期?

d)当cookie超过ExpireTimeSpan设置的生命周期时,即使在以下情况下cookie也不再有效:

  • IsPersistent == true

  • 会话尚未过期

  • 认证尚未达到ExpireUtc设置的生命周期?

谢谢

如果AuthenticationProperties.IsPersistent为false

  • cookie过期设置为Session
  • 忽略CookieAuthenticationOptions.ExpireTimeSpans
  • 忽略AuthenticationProperties.ExpiresUtc
否则

如果没有AuthenticationProperties.ExpiresUtc设置

  • cookie过期时间设置为CookieAuthenticationOptions.ExpireTimeSpans,默认为14天

如果有AuthenticationPropertise.ExpiresUtc设置

  • cookie过期设置为
  • 忽略CookieAuthenticationOptions.ExpireTimeSpans

在身份框架的情况下,有一个属性ExpireTimeSpan,它建议cookie的生命时间。根据以下示例,cookie将在24小时后失效。

    public static void ConfigureOAuthSettings(IAppBuilder app)
    {
        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            SlidingExpiration = false,
            ExpireTimeSpan = TimeSpan.FromHours(24)
        });}

如果您想获得更详细的代码,请访问这里

相关内容

  • 没有找到相关文章

最新更新