Параллельное ограничение пользователя в веб-приложении - PullRequest
1 голос
/ 09 июля 2010

Каков наилучший способ ограничения одновременного доступа пользователей в любом веб-приложении?

Существующая проблема:

У нас есть разные отчеты в нашем веб-приложении. если один пользователь обращается к какому-либо отчету, мы не должны разрешать другим пользователям доступ к тому же отчету. Как мы можем этого добиться?

Предлагаемое решение:

  • создать одноэлементный класс, который будет содержать информационный объект отчета с типом и датой отчета, поэтому, если пользователь впервые обращается к отчету, создайте этот одноэлементный объект с текущим временем
  • если пользователь продолжает открывать этот отчет без выполнения каких-либо операций через 30 минут, планировщик закроет этот отчет.
  • если другой пользователь пытается получить доступ к тому же отчету, проверяя, содержит ли объект-одиночка информацию отчета или нет, если мы не разрешаем.

Этот подход лучший или есть лучший? Каковы наилучшие способы достижения этого?

1 Ответ

2 голосов
/ 09 июля 2010

Я не уверен, что под отчетами подразумевается какой-либо экран в веб-приложении. В таком случае, Вы можете создать таблицу в базе данных для отслеживания доступа пользователей к отчетам. Пользователь может получить доступ к отчету, только если он доступен или принадлежит ему. Отчет освобождается, когда пользователь покидает экран или его сеанс заканчивается, вы можете создать прослушиватель сеанса и прослушиватель контекста, который очищает владельца отчетов.

...