我对RC2发生了一个奇怪的问题。
我使用以下配置选项
将Identity 3 ExpireTimeSpan设置为12小时options.Cookies.ApplicationCookie.ExpireTimeSpan = new TimeSpan(12,0,0);
登录网站并保持不变约35-40分钟后,我收到401错误(对于我的ajax帖子来电)并刷新网站,我回到登录页面。
为什么在将ExpireTimeSpan设置为12小时后需要重新进行身份验证?
我需要其他设置或配置吗?
此外,
如何在到期前剩下的时间?我想访问该信息,以便我可以警告我的用户他们的会话将在X时间后过期。
谢谢!
答案 0 :(得分:8)
我发现了问题
问题在于SecurityStamp机制。 默认情况下,每隔30分钟验证一次安全标记。这主要是因为在任何地方签到都是一种选择。 例如,当用户更改密码时,安全标记通常以身份更新。 这将使用户已登录的所有位置(除非他更改密码的位置)在30分钟后退出,因为邮票(通常是指导)已更改。
要实现此功能,请在UserStore中实施ISecurityStampStore<T>
接口并实施GetSecurityStampAsync(User user, CancellationToken cancellationToken)
方法
有关详细信息,您可以查看安全标记验证码以及30分钟后签署的原因
注意: options.SecurityStampValidationInterval可以设置为增加时间检查,但它不能解决问题。在X时间之后,您仍将退出。