powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / как узнать вышел ли таймаут у сессии
20 сообщений из 20, страница 1 из 1
как узнать вышел ли таймаут у сессии
    #36293857
AndrewQwer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
извиняюсь, если такой вопрос уже был, но как определить вышел ли таймаут сессии или нет?
просто у меня есть кнопка, которая делает логаут пользователя, так вот если вдруг страница открыта достаточно долго, а затем пользователь пытается нажать кнопку Выход, то выдается ошибка, что он уже якобы вышел (сессия закончилась). по нажатию кнопки Выход делаю
Код: plaintext
1.
%session.EndSession= 1 
...
Рейтинг: 0 / 0
как узнать вышел ли таймаут у сессии
    #36293880
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в ZEN для этого вставляется специальный скрипт в страницу, который по истечении сессии выкидывает на страницу авторизации

_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
как узнать вышел ли таймаут у сессии
    #36293887
AndrewQwer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а если я не использую ZEN, а чистый CSP? :(
...
Рейтинг: 0 / 0
как узнать вышел ли таймаут у сессии
    #36293895
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда можно добавить самому
вот этот кусок из ZEN, и насколько я помню, так кусок выглядит если страница авторизации не задана, он просто перегружает страницу по истечении времени
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
var zenAutoLogoutTime =  3615000 ;  // сюда значение нужно взять от сюда %session.AppTimeout  
var zenAutoLogoutTimerID = null;
	

zenAutoLogoutTimerID = self.setTimeout("zenAutoLogout()",zenAutoLogoutTime);
function zenAutoLogout()
{
	var ok = true;
	if (zenPage.onlogoutHandler) {
		ok = zenPage.onlogoutHandler();
	}
	if (ok) {
		top.document.location.reload();
	}
}

_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
как узнать вышел ли таймаут у сессии
    #36293941
AndrewQwer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо попробую
...
Рейтинг: 0 / 0
как узнать вышел ли таймаут у сессии
    #36294084
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы можете переопределить свойство EventClass типа %CSP.SessionEvents у класса %CSP.Session .
...
Рейтинг: 0 / 0
как узнать вышел ли таймаут у сессии
    #36294166
AndrewQwer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servitВы можете переопределить свойство EventClass типа %CSP.SessionEvents у класса %CSP.Session .

а можно примерчик как это сделать?
...
Рейтинг: 0 / 0
как узнать вышел ли таймаут у сессии
    #36294178
AndrewQwer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я делал так:
Код: plaintext
1.
2.
3.
<script language="cache"  method="OnEndSession">
s %response.ServerSideRedirect="/csp/work/book.csp"  
</script>

но что-то не переходит он на другую страницу после таймаута
...
Рейтинг: 0 / 0
как узнать вышел ли таймаут у сессии
    #36294222
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нужно думаю обрабатывать OnTimeout
потому как этот обработчик думаю вызывается после явного сброса сессии
Set %session.EndSession=0


_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
как узнать вышел ли таймаут у сессии
    #36294253
AndrewQwer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
к сожалению ни мой метод, ни ваш не делает переход на другую страницу... в чем же дело?
...
Рейтинг: 0 / 0
как узнать вышел ли таймаут у сессии
    #36294280
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в моем стоит просто перезагрузка страницы по таймайуту

_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
как узнать вышел ли таймаут у сессии
    #36294313
AndrewQwer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я имею ввиду не срабатывает ни OnTimeout ни OnEndSession, ставлю таймаут на 10 секунд, после чего должен сработать редирект на другую страницу, вот он и не не срабатывает ни в OnTimeout ни в OnEndSession. Не знаете что я не так делаю?
Код: plaintext
1.
2.
3.
<script language="cache"  method="OnTimeout">
s %response.ServerSideRedirect="/csp/work/book.csp"  //document.location.href="#(%request.GetCgiEnv("PageName"))#";>
</script>
...
Рейтинг: 0 / 0
как узнать вышел ли таймаут у сессии
    #36294515
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько я понял EventClass, помогает переопределить класс-обработчик событий сессии на сервере, но не на клиенте
и вы его не так используете
так описывать
Код: plaintext
1.
2.
<script language="cache" runat="server">
s %session.EventClass = "User.MyEventClass"
</script>

соответсвенно нужно иметь класс User.MyEventClass отнаследованный от %CSP.SessionEvents
где можно переопределить методы событий, и выполнить что-то на сервере, но не на клиенте, т.е. у пользователя в браузере ничего не измениться

_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
как узнать вышел ли таймаут у сессии
    #36294527
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и самое главное, чтобы сработал редирект, его должно что-то вызвать, а сервер самостояятельно не может это сделать, делать это должна сама страничка, соответственно там должен быть какой-нибудь код который это сделает, таким образом можно легко просмотрев код на выходе, и не увидеть там ничего, что могло бы это сделать

_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
как узнать вышел ли таймаут у сессии
    #36294541
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для AndrewQwer

Посмотрите готовый пример sessionevents.csp в примерах по работе с CSP.
Не работает, потому что, судя по всему, Вы просто добавили на страницу метод OnTimeout с неким кодом.
...
Рейтинг: 0 / 0
как узнать вышел ли таймаут у сессии
    #36295131
AndrewQwer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, я не правильно переопределял методы :( сейчас работают, большое спасибо всем
...
Рейтинг: 0 / 0
как узнать вышел ли таймаут у сессии
    #36358128
Cache'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Напиши как сделал в итоге, пытаюсь перенаправить по окончанию сессии на другую страницу ничего не выходит
...
Рейтинг: 0 / 0
как узнать вышел ли таймаут у сессии
    #36358136
Cache'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMorв ZEN для этого вставляется специальный скрипт в страницу, который по истечении сессии выкидывает на страницу авторизации

_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
не подскажите как и куда вставить этот скрипт :)
...
Рейтинг: 0 / 0
как узнать вышел ли таймаут у сессии
    #36358221
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну тут как бы все написано, и скрипт о котором вы спрашиваете тоже

_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
как узнать вышел ли таймаут у сессии
    #36358285
Cache'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не понятно куда его вставлять этот скрипт.
Подцепил к zen классу через параметр JSINCLUDE, дальше не ушел )
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / как узнать вышел ли таймаут у сессии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]