powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как правильно обработать ошибку You are logged out, and can no longer perform that action
15 сообщений из 15, страница 1 из 1
Как правильно обработать ошибку You are logged out, and can no longer perform that action
    #37266478
AndrewQwer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При вызове метода таким образом:
Код: plaintext
1.
#server(..SomeMethod)#
после истечении времени таймаута сессии выводиться окошко с ошибкой

CSP error occurred
Error: You are logged out, and can no longer perform that action
ErrorNo: 5918
CSP Page: /csp/work/%CSP.Broker.cls
Namespace: WORK
Class: %CSP.Broker

как избавиться от этогО? в идеале переадресовать пользователя на главную страницу сайта.
...
Рейтинг: 0 / 0
Как правильно обработать ошибку You are logged out, and can no longer perform that action
    #37266561
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrewQwerкак избавиться от этогО?
Запускать в методе джоб и возвращать управление странице.
...
Рейтинг: 0 / 0
Как правильно обработать ошибку You are logged out, and can no longer perform that action
    #37266566
AndrewQwer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaAndrewQwerкак избавиться от этогО?
Запускать в методе джоб и возвращать управление странице.
т.е. все действия которые я хочу сделать в методе обернуть в еще один метод и вызвать через джоб и тогда сообщения не будет? а если я в методе использую &js<> в джобе оно будет работать?
...
Рейтинг: 0 / 0
Как правильно обработать ошибку You are logged out, and can no longer perform that action
    #37266655
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrewQwer , не обязательно метод... Сойдёт и простая процедура...

тут дело вчём... Нужно вкорне пересматривать твой вариант работы. Т.е. джоб должен работать сам по себе, а отображение на странице само по себе... Т.е. тебе придётся придумать некий их протокол общения.
Я вот такое делаю через некий глобал...
...
Рейтинг: 0 / 0
Как правильно обработать ошибку You are logged out, and can no longer perform that action
    #37266668
AndrewQwer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa AndrewQwer , не обязательно метод... Сойдёт и простая процедура...

тут дело вчём... Нужно вкорне пересматривать твой вариант работы. Т.е. джоб должен работать сам по себе, а отображение на странице само по себе... Т.е. тебе придётся придумать некий их протокол общения.
Я вот такое делаю через некий глобал...
в целом понял... а если просто редирект предусмотреть в случае ошибки. как такое можно будет сделать?
...
Рейтинг: 0 / 0
Как правильно обработать ошибку You are logged out, and can no longer perform that action
    #37266801
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrewQwerа если просто редирект предусмотреть в случае ошибки. как такое можно будет сделать?
Ну это вовсе по колхозному...
Например в описании csp-задачи можно указать страницу обработчик при возникновении ошибки...

Нормальный принцип - страница не должна ждать ответа. Запустил на сервере что нужно, получил управление обратно. Что делать потом - смотри по желанию и обстоятельствам...
...
Рейтинг: 0 / 0
Как правильно обработать ошибку You are logged out, and can no longer perform that action
    #37266841
AndrewQwer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaAndrewQwerа если просто редирект предусмотреть в случае ошибки. как такое можно будет сделать?
Ну это вовсе по колхозному...
Например в описании csp-задачи можно указать страницу обработчик при возникновении ошибки...

Нормальный принцип - страница не должна ждать ответа. Запустил на сервере что нужно, получил управление обратно. Что делать потом - смотри по желанию и обстоятельствам...
я имею ввиду что если сессия закончилась (получил ошибку при нажатии на кнопку которая вызывает метод) мне бы желательно было наверно на авторизацию юзера перенаправить. мало ли кто за 15 минут бездействия подошел к компу юзера.
...
Рейтинг: 0 / 0
Как правильно обработать ошибку You are logged out, and can no longer perform that action
    #37267270
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrewQwer ,

Для ZEN:
onServerMethodError

AUTOLOGOUT

Для CSP/ZEN:

ERRORPAGE

Timeout Notification
Ваше ?. Управление должно автоматически вернуться на начальную страницу авторизации при истечении/завершении сессии.
Если у Вас это не так, нужно смотреть код.
...
Рейтинг: 0 / 0
Как правильно обработать ошибку You are logged out, and can no longer perform that action
    #37267355
AndrewQwer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit AndrewQwer ,

Для ZEN:
onServerMethodError

AUTOLOGOUT

Для CSP/ZEN:

ERRORPAGE

Timeout Notification
Ваше ?. Управление должно автоматически вернуться на начальную страницу авторизации при истечении/завершении сессии.
Если у Вас это не так, нужно смотреть код.

попробую, спасибо. моя прошлая тема касалась перехода по страницам и редирект если пользователь нажал на ссылку, а в это время сессия истекла. но тут страница не перезагружается и редирект не срабатывает, а страница выдает ошибку .
...
Рейтинг: 0 / 0
Как правильно обработать ошибку You are logged out, and can no longer perform that action
    #37267565
AndrewQwer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такс.. что-то у меня не получилось. Привожу тестовый пример на котором я тренировался:
CSP страница с 1 кнопкой.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<script language="cache" runat="server">
	Set %session.AppTimeout = 3
	s %session.EventClass = "User.SessClass"
</script>
<html>
<head>
<title></title>
<script language="cache" method="SomeFunc">
&js<alert('ok')>
</script>
<script>
function some_func() {
	#server(..SomeFunc)#	
}
</script>
</head>
<body>
<input type="button" onclick="some_func()" value="push me"/>
</body>
</html>

Класс с обработчиками событий сессии:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Class User.SessClass Extends %CSP.SessionEvents [ ProcedureBlock ]
{

ClassMethod OnTimeout() [ Language = cache ]
{
	s ^GLOB("TIMEOUT")=$h	
}
ClassMethod OnEndSession() [ Language = cache ]
{	
	s ^GLOB("EndSession")=$h	
}
}
В ^GLOB пишу когда вызывались эти методы.
Установил таймаут в 3 секунды для быстроты окончания. Вот перезагрузил страницу. Пока не истекли 3 секунды клик на кнопку выводит окно с сообщением "ok". После 3 секунд выдает алерт с ошибкой
CSP error occurred
Error: You are logged out, and can no longer perform that action
ErrorNo: 5918
CSP Page: /csp/work/%CSP.Broker.cls
Namespace: WORK
Class: %CSP.Broker
Как мне редиректиться на index.csp допустим :( ?
...
Рейтинг: 0 / 0
Как правильно обработать ошибку You are logged out, and can no longer perform that action
    #37267568
AndrewQwer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вплане вместо ошибки чтоб редирект был
...
Рейтинг: 0 / 0
Как правильно обработать ошибку You are logged out, and can no longer perform that action
    #37268004
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из исходников %ZEN.Component.abstractPage
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 
  ;если для зен-страницы определен параметр AUTOLOGOUT
  ;на клиент в начале страницы выводится javascript 
  &js<
   var zenAutoLogoutTime = #((%session.AppTimeout+ 15 )* 1000 )#; //длительность сессии с запасом
   var zenAutoLogoutTimerID = null; //таймер
   if (zenAutoLogoutTimerID) { 
     self.clearTimeout(zenAutoLogoutTimerID); //сброс таймера 
     zenAutoLogoutTimerID = self.setTimeout("zenAutoLogout()",zenAutoLogoutTime); //инициализация таймера 
    //где, zenAutoLogout() - обработчик завершения, например перенаправление на страницу входа
   }
  >
  ;причем с помощью javascript реализовано, что каждый #call()# и #server()# сбрасывает таймер zenAutoLogoutTimerID на начало
 }
...
Рейтинг: 0 / 0
Как правильно обработать ошибку You are logged out, and can no longer perform that action
    #37268006
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На версии 2011.1.FT2 Ваш пример работает без ошибок.
Глобал ^GLOB через каждые три секунды меняет свои значения.

Для версии 5.0.x ошибка воспроизводится.
Попробуйте, например, так:

<html>
<head>
<title></title>
<script language="cache" runat="server">
  s %session.AppTimeout = 3
  s %session.EventClass = "User.SessClass"
</script>
<script language="cache" method="SomeFunc">
  &js<alert('ok');>
</script>
<script language="javascript">
  var afAutoLogoutTimerID = self.setTimeout("afAutoLogout()",#(%session.AppTimeout * 1000)#);
  function some_func() {#server(..SomeFunc())#}
  function afAutoLogout()
  {
    self.document.location = 'main.csp';
  }
</script>
</head>
<body>
<input type="button" onclick="some_func()" value="push me"/>
</body>
</html>

Или переходите на более свежие версии Caché.

PS: пожалуйста, указывайте в начале темы версию Caché.
...
Рейтинг: 0 / 0
Как правильно обработать ошибку You are logged out, and can no longer perform that action
    #37268666
AndrewQwer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
5.0.21
...
Рейтинг: 0 / 0
Как правильно обработать ошибку You are logged out, and can no longer perform that action
    #37268670
AndrewQwer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servitНа версии 2011.1.FT2 Ваш пример работает без ошибок.
Глобал ^GLOB через каждые три секунды меняет свои значения.

Для версии 5.0.x ошибка воспроизводится.
Попробуйте, например, так:

<html>
<head>
<title></title>
<script language="cache" runat="server">
  s %session.AppTimeout = 3
  s %session.EventClass = "User.SessClass"
</script>
<script language="cache" method="SomeFunc">
  &js<alert('ok');>
</script>
<script language="javascript">
  var afAutoLogoutTimerID = self.setTimeout("afAutoLogout()",#(%session.AppTimeout * 1000)#);
  function some_func() {#server(..SomeFunc())#}
  function afAutoLogout()
  {
    self.document.location = 'main.csp';
  }
</script>
</head>
<body>
<input type="button" onclick="some_func()" value="push me"/>
</body>
</html>

Или переходите на более свежие версии Caché.

PS: пожалуйста, указывайте в начале темы версию Caché.
Спасибо за достаточно простое решение! все работает.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как правильно обработать ошибку You are logged out, and can no longer perform that action
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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