Максимальная продолжительность сеанса - PullRequest
0 голосов
/ 03 июня 2019

Используя SignalR Core, я хочу, чтобы клиенты проходили повторную аутентификацию каждые 4 часа. Как мне прервать соединения на стороне сервера, которые все еще открыты через 4 часа?

Что я пробовал:

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

К сожалению, это не работает, потому что контекст удаляется после установления соединения.

1 Ответ

1 голос
/ 04 июня 2019

Разве это не то, что вы бы делегировали провайдеру аутентификации?Или у вас есть собственная система управления идентификацией?

Попытайтесь получить доступ к прямому ресурсу (быстрый - проверка работоспособности - сердцебиение, как вы хотите его назвать).Если аутентификация истекла, вы получите ошибку (скорее всего, что-то вроде 440, 401 или даже 403), и тогда клиентская сторона узнает о необходимости (повторной) аутентификации - вам придется подключить ее там.

Опять же, асинхронная природа SignalR может бороться с этим;или есть нестандартный шаблон / решение - так может быть, это ваш вопрос?

...