Должен ли я просто создать функцию javascript, которая будет автоматически обновлять страницу через некоторое время?
Можно попробовать создать скрытый iframe во всех шаблонах, используемых веб-приложением для делает автоматические вызовы к контроллеру MVC метод, который заставляет регулярно обновлять данные аутентификации на регулярной основе.
Это достигается очень легко путем настройки автоматического JavaScriptпроцесс во внешнем интерфейсе выполняется в цикле на регулярной основе 45 '.Это значение также можно настроить или извлечь из файла конфигурации.Единственным ключевым условием является то, что он должен быть менее одного часа.
Вот упрощенный пример кода, относящийся к контроллеру MVC:
/* Action method, inside "Account" controller class, to force renewal of user authentication session */
public void ForceSignIn()
{
HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/" },
OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
А вот упрощенный пример кода HTML и JavaScriptиспользуется для тихого вызова в скрытом iframe в MVC Controller:
<iframe id="renewSession" hidden></iframe>
<script>
setInterval( function ()
{ @if (Request.IsAuthenticated) {
<text>
var renewUrl = "/Account/ForceSignIn";
var element = document.getElementById("renewSession");
element.src = renewUrl;
</text>
}
},
1000*60*45
);
</script>
Для получения более подробной информации, вы можете обратиться к этой статье , в которой возникает аналогичная ситуация с вами.