У меня есть способ истечения срока действия сеанса, который выводит пользователя через 20 минут, используя обратный отсчет из файла cookie. Он отлично работает, так как пользователь успешно выходит из системы. Единственная проблема после того, как появится URL, какОшибка истечения срока действия сеанса
локальный: 8091/Войти ReturnUrl =% 2FLogin% 2FLogOut
, когда он не должен иметь ничего после/Логин. Я использую C# и ASP.NET 4 с MVC.
Это JS используется для перенаправления пользователя ...
function startCountdown(timeLeft) {
if (countDownInterval > 0) return;
$('#idletimeoutcount').text(countDown);
$('#idletimeout').slideDown();
countDown = parseInt(timeLeft/1000);
countDownInterval = setInterval(function() {
$('#idletimeoutcount').text(countDown);
var secondsLeft = countDown--;
document.title = "Warning! " + secondsLeft + " seconds left until logged out";
if (countDown <= 0) {
// console.log('finished');
window.location.href = '/Login/LogOut';
}
}, 1000);
}
И функция LogOut:
public ActionResult LogOut()
{
FormsAuthentication.SignOut();
return RedirectToAction("Index", "Login");
}
Есть ли способ сделать это так, URL является локальный: 8091/Авторизоваться ? (HTTP вынимают из-за переполнения стека)
Это может быть что-то делать с веб-конфигурации, который содержит эти теги:
<authentication mode="Forms">
<forms name="SqlAuthCookie" loginUrl="Login" timeout="20" slidingExpiration="true" />
</authentication>
Что происходит, когда свежий пользователь попадает на localhost: 8091/Войти? Он автоматически добавляет ReturnUrl? –
Странно, если я запустил window.location.href = '/ Login/LogOut'; в консоли на Chrome он выходит с localhost: 8091/Логин. Но когда я жду 20 минут для таймаута, он приходит как localhost: 8091/Login? ReturnUrl =% 2FLogin% 2FLogOut. В любом случае вы вернетесь на страницу входа в систему, но если этот URL-адрес появится и вы попытаетесь войти в систему, вам нужно дважды войти в систему дважды, когда URL-адрес вернется в/Логин после первого щелчка. –
Не уверен, что это поможет, но вы можете попробовать: loginUrl = "Login" to loginUrl = "/ Login" –