ASP.NET Core Identity 3 Cookie超时
RC2发生了一个奇怪的问题。
我使用以下配置选项将Identity 3 ExpireTimeSpan设置为12小时
options.Cookies.ApplicationCookie.ExpireTimeSpan = new TimeSpan(12,0,0);
登录到网站并保持不变约35-40分钟后,我收到401错误(对于我的ajaxpost调用)并刷新网站,我回到登录页面。
当我将ExpireTimeSpan设置为12小时时,为什么必须重新进行身份validation?
我需要其他设置或配置吗?
也,
如何在到期前剩下时间? 我想访问该信息,以便我可以警告我的用户他们的会话将在X时间后过期。
谢谢!
我发现了问题
问题在于SecurityStamp机制。 默认情况下,每隔30分钟validation一次安全标记。 这主要是因为在任何地方签到都是一种选择。 例如,当用户更改密码时,安全标记通常以身份更新。 这将使用户已登录的所有位置(除非他更改密码的位置)在30分钟后退出,因为邮票(通常是guid)已更改。
要实现此function,请在ISecurityStampStore
实现ISecurityStampStore
接口并实现GetSecurityStampAsync(User user, CancellationToken cancellationToken)
方法
有关详细信息,您可以查看安全标记validation码以及30分钟后签署的原因
注意:options.SecurityStampValidationInterval可以设置为增加时间检查,但不能解决问题。 在X时间之后,您仍将退出。
- 覆盖ASP.NET Core MVC 1.0中的全局授权filter
- 有些值是null AJAX调用控制器ASP.Net Core
- 提交表单时模型集合丢失
- EF Core 2.0.0查询filter正在缓存TenantId(针对2.0.1+进行了更新)
- AppSettings.json用于ASP.NET核心中的集成测试
- 找不到方法app.UseStaticFiles()
- 在blazor应用程序中自动注入javascript
- 如何从Visual Studio Team Services运行ASP.NET核心entity framework迁移
- 在ASP.NET 5中使用声明与OpenIdConnect.Server