Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 检测identity server会话已过期的最佳方法是什么?_Session_Identityserver4 - Fatal编程技术网

Session 检测identity server会话已过期的最佳方法是什么?

Session 检测identity server会话已过期的最佳方法是什么?,session,identityserver4,Session,Identityserver4,我们一直在使用checksession iframe,但在检测由于不活动而超时的会话时遇到问题。在我们的故障排除中,我们确定idsrv4创建了一个名为“idsrv.session”的cookie,iframe将轮询该cookie。但是,由于cookie没有到期日期(会话cookie),即使在30分钟(我们的会话长度)之后,iframe仍然以“unchanged”响应。我们试图设置此cookie的过期日期,但这似乎是错误的方法。有什么想法吗?来自: 4.2。OP iframe OP浏览器状态通常存

我们一直在使用checksession iframe,但在检测由于不活动而超时的会话时遇到问题。在我们的故障排除中,我们确定idsrv4创建了一个名为“idsrv.session”的cookie,iframe将轮询该cookie。但是,由于cookie没有到期日期(会话cookie),即使在30分钟(我们的会话长度)之后,iframe仍然以“unchanged”响应。我们试图设置此cookie的过期日期,但这似乎是错误的方法。有什么想法吗?

来自:

4.2。OP iframe

OP浏览器状态通常存储在cookie或HTML5本地存储中。它是绑定到授权服务器的源。它捕获有意义的事件,例如登录、注销、用户更改、最终用户正在使用的客户端的身份验证状态更改等。因此,OP应更新浏览器状态的值以响应此类有意义的事件。因此,在此类事件之后对check_session()的下一次调用将返回更改的值。建议OP在没有有意义的事件的情况下不要过于频繁地更新浏览器状态,以便在响应虚假的更改事件时在客户端节省过多的网络流量

或者更具体地说

更改身份验证状态

您来自Identity Server 3吗?在3中,这种饼干有一个有效期。它在4中被删除,因为规范没有要求它:

在IdSvr4中,用于登录的整个UI将由开发人员(您)而不是框架(我们)负责。因此,如果需要,您可以发布自己的持久cookie

(来自)

Brock Allen(Identity Server作者)提到,您可以创建自己的cookie中间件来对cookie进行额外控制:

正如Dom所说,简短的回答是设置您自己的cookie中间件,并通过以下属性让我们了解它:

(来自)


对于这个特定的cookie,您可能需要实现IUserSession接口(以前称为ISessionIdService)并通过DI注册它。

请包含您的代码谢谢这里有很多好信息!我想我主要关心的是:我使用iframe轮询的方法是否正确?其他人在这些cookie上设置过期日期是否常见?我们有非常紧密的identity server会话,这可能不是常见的场景。