Время доступа пользователя в ASP.NET MVC, для начинающих - PullRequest
1 голос
/ 19 июня 2009

В ASP.NET MVC, что является хорошим способом (предпочтительным способом ??) для определения времени, в течение которого пользователь находился на определенной странице? Например, я хочу, чтобы пользователь что-то выбрал, а затем разрешил ему что-то делать только в течение 30 секунд. Хорошие ссылки или ссылка на страницу книги будут высоко оценены.

Заранее спасибо!

Ответы [ 3 ]

3 голосов
/ 19 июня 2009

Вы можете отслеживать, когда пользователь куда-то заходил и сколько времени он там находился (или открыла ли страница, пока балансирует свою чековую книжку ... вы поняли). Проблема в том, что вам нужна какая-то форма клиентского контроллера, чтобы они могли видеть XYZ в течение 30 секунд ... и затем перенаправить их на следующую страницу, которую они могут видеть. Поэтому, если вы хотите, чтобы пользователь видел ресурс в течение X времени, вам нужно использовать таймер на стороне клиента javascript, чтобы убрать его из ресурса по истечении времени. Это может быть сделано со временем, статически закодированным для клиента (которое может быть изменено клиентом), или это может быть сделано путем отправки AJAX-запроса на сервер, чтобы узнать, истекло ли время. Или это можно сделать с помощью встроенного флеш-плеера. Ключевым моментом здесь является то, что ваша серверная сторона не имеет столько власти над клиентской стороной, сколько вам требуется. Большинство сайтов тестирования используют какую-либо форму этого клиентского javascript для отслеживания того, что пользователь делает, когда и как долго!

1 голос
/ 19 июня 2009

Вы можете использовать функцию JavaScript setTimeout():

var timeOut = function() {
    alert('Time is up!');
}

setTimeout (timeOut, 30000);

Или вы можете использовать <meta> тег :

<meta http-equiv="refresh" content="30;url=http://www.example.com/time-is-up.html">
1 голос
/ 19 июня 2009

Один довольно простой способ - сохранить последний раз, когда пользователь был на странице, в базе данных - таблица может иметь, например, поля UserID, Page и TimeStamp. Всякий раз, когда пользователь пытается сделать то, что вы хотите разрешить только в течение 30 секунд, вы проверяете по базе данных, прошло ли время или нет. (Для таких коротких периодов времени, как 30 секунд, база данных может быть слишком медленной, хотя ... Зависит от вашего требования точности, я полагаю ...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...