Общие > Веб-технологии
Запрет мультисессий
(1/1)
Kettel:
Как запретить открывать более одного окна браузера для определенного хоста? Надо чтобы работало в IE5+.
CGVictor:
Kettel
Запретить никак.
Можно использовать нечто вроде challenge-response для контроля работы только в одном окне.
Т.е. при выводе документа изменяется запись в базе. На некий id. Он же выдается в документ. Если переданный документ возвращает на сервер неверный id, значит, ранее был передан такой же (и запись в базе уже была изменена), поэтому в документ надо выдать только window.close();
Но
1) коряво, т.к. открыть можно (потом работать в двух нельзя)
2) практически всегда можно обойтись без этого
Kettel:
Ок, но как хотя бы отследить что юзер открыл второе окно для того же хоста?
К сожалению, обойтись без этого нельзя, т.к.
1) это не сайт, а веб-приложение
2) я не могу повлиять на изменение ТЗ
CGVictor:
Kettel
Да если и веб приложение.
Можно формировать вывод полностью AJAx-ом, а загружать пустой документ (только с библиотекой AJAX; о, кстати, ничего выход)
Тогда проверять то же самое при обращении AJAX к серверу за данными, и отдавать только при положительной проверке id.
А запретить именно открытие - смысла нет. Я могу "тупо" запросить тот же url другим приложением.
Хотя запретить можно. Копай MSDN, плюс можно использовать открытие модального диалога: мне помнится, там были ограничения на открытие ссылок и окон.
Навигация
Перейти к полной версии