【发布时间】:2015-01-08 05:08:12
【问题描述】:
我目前正在将 Identity 用于登录系统,但它创建的会话令牌提供了 10 小时的固定到期日期。如果用户空闲 20 分钟,我的系统的规范要求会话到期。我在源代码中找不到提供滚动会话状态的任何地方。
我已经用谷歌搜索了这个问题,唯一的解决方案是每次在 global.asax 中引发 SessionAuthenticationModule_SessionSecurityTokenReceived 事件时从 sessionAuthenticationModule 创建一个新会话。
if (validFrom.AddMinutes(halfSpan) < now && now < validTo)
{
var sam = sender as SessionAuthenticationModule;
e.SessionToken = sam.CreateSessionSecurityToken(
e.SessionToken.ClaimsPrincipal,
e.SessionToken.Context,
now,
now.AddMinutes(5),
e.SessionToken.IsPersistent);
e.ReissueCookie = true;
}
这种方法有更好的替代方法吗?
【问题讨论】: