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

_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
06.11.2009, 09:49
    #36293887
AndrewQwer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать вышел ли таймаут у сессии
а если я не использую ZEN, а чистый CSP? :(
...
Рейтинг: 0 / 0
06.11.2009, 09:53
    #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
06.11.2009, 10:19
    #36293941
AndrewQwer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать вышел ли таймаут у сессии
спасибо попробую
...
Рейтинг: 0 / 0
06.11.2009, 11:07
    #36294084
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать вышел ли таймаут у сессии
Вы можете переопределить свойство EventClass типа %CSP.SessionEvents у класса %CSP.Session .
...
Рейтинг: 0 / 0
06.11.2009, 11:30
    #36294166
AndrewQwer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать вышел ли таймаут у сессии
servitВы можете переопределить свойство EventClass типа %CSP.SessionEvents у класса %CSP.Session .

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

но что-то не переходит он на другую страницу после таймаута
...
Рейтинг: 0 / 0
06.11.2009, 11:46
    #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
06.11.2009, 11:54
    #36294253
AndrewQwer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать вышел ли таймаут у сессии
к сожалению ни мой метод, ни ваш не делает переход на другую страницу... в чем же дело?
...
Рейтинг: 0 / 0
06.11.2009, 12:00
    #36294280
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать вышел ли таймаут у сессии
в моем стоит просто перезагрузка страницы по таймайуту

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

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

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

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

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


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