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