Страницы ASP.NET Core Razor — регистрация времени выхода пользователя из системы при закрытии браузера/вкладкиJquery

Программирование на jquery
Ответить Пред. темаСлед. тема
Anonymous
 Страницы ASP.NET Core Razor — регистрация времени выхода пользователя из системы при закрытии браузера/вкладки

Сообщение Anonymous »

У меня есть проект ASP.NET Core 8.0 с использованием Razor Pages, где я регистрирую время входа и выхода пользователей. В настоящее время я столкнулся с проблемой: если пользователь закрывает браузер/вкладку напрямую, время выхода из системы не записывается, поскольку страница выхода недоступна. Чтобы решить эту проблему, я попытался реализовать прослушиватель событий JavaScript перед выгрузкой, чтобы предложить пользователю подтвердить выход из системы при закрытии вкладки или браузера. Вот мой текущий подход:

Код: Выделить всё

window.addEventListener('beforeunload', function (e) {
e.preventDefault();
e.returnValue = '';
});


Однако этот скрипт выдает предупреждение при любой навигации по странице, включая нажатия кнопок, что не является желаемым поведением. Я хочу, чтобы предупреждение появлялось только тогда, когда пользователь пытается закрыть вкладку или браузер напрямую.
Кроме того, я попытался использовать Ajax для вызова метода выхода из системы, когда пользователь подтверждает, что хочет выйти. :

Код: Выделить всё

window.addEventListener('beforeunload', function (e) {
e.preventDefault();
e.returnValue = '';
// Ajax call to log out the user
$.get("/Logout");
});


Но этот подход, похоже, не работает надежно.
Цель:
Мне нужно решение, которое запускает механизм выхода из системы (журналы выход пользователя и записывает время выхода из системы), когда пользователь закрывает вкладку или браузер напрямую, без запроса предупреждения при каждом действии на странице. Как я могу добиться этого в приложении ASP.NET Core Razor Pages?
Я ожидаю, что когда пользователь попытается закрыть вкладку или браузер напрямую, ему будет предложено диалоговое окно подтверждения ( через beforeunload), и после подтверждения запрос Ajax должен выполнить выход пользователя из системы, записав время выхода из системы в базе данных (/LogOut).

Подробнее здесь: https://stackoverflow.com/questions/787 ... -tab-close
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Jquery»