通过将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)
});}
如果您想获得更详细的代码,请访问这里