最大会话时长

时间:2019-06-03 07:50:39

标签: c# asp.net-core-signalr

我希望使用SignalR Core,客户端每4小时重新进行一次身份验证。我如何中止4个小时后仍打开的服务器端连接?

我尝试过的事情:

// Inside my Hub
public override Task OnConnectedAsync()
{
    Task.Delay(TimeSpan.FromHours(4)).ContinueWith(_ => Context.Abort());
}

不幸的是,这不起作用,因为一旦建立连接,就将处置Context。

1 个答案:

答案 0 :(得分:1)

这不是您要委派给身份验证提供程序的内容吗?还是您有自己的身份管理系统?

尝试访问简单的资源(快速-运行状况检查-心跳,无论您想为其命名)。如果身份验证已过期,您将收到一个错误(很可能是440、401甚至403之类的错误),然后客户端会知道需要(重新)身份验证-您必须将其挂接到那里。 / p>

然后,SignalR的异步特性可能会为此感到困扰;还是有现成的模式/解决方案-也许这是您的问题?