Я работаю над ASP.net Core Web API, где я использую промежуточное программное обеспечение сеанса с настроенным тайм -аутом, например,:
Код: Выделить всё
services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromMinutes(20);
});
Я хочу вернуть оставшееся время сеанса (в секундах) обратно к клиенту в заголовках ответов, поэтому фронт может отображать обратный отсчет сеанса или предупредить пользователя. /> Как я могу получить доступ или рассчитать оставшееся время истечения сеанса внутри контроллера или промежуточного программного обеспечения? Хранить?
Код: Выделить всё
var sessionTimeout = ???; // How to get this dynamically?
var lastActivity = session.GetString("LastActivityTime") ?? DateTime.UtcNow.ToString();
var timeElapsed = DateTime.UtcNow - DateTime.Parse(lastActivity);
var timeLeft = sessionTimeout - timeElapsed;
Response.Headers["X-Session-TimeLeft"] = timeLeft.TotalSeconds.ToString();
Но я не уверен, как получить SessionTimeout динамически или есть лучший подход.>
Подробнее здесь:
https://stackoverflow.com/questions/796 ... the-client