Гость
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Верификация пользователя в Zen / 19 сообщений из 19, страница 1 из 1
21.08.2012, 15:33
    #37924798
feanorcheg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верификация пользователя в Zen
Ребят, такая проблема: есть страница логина, необходимо отсылать на неё с других страниц проекта всех пользователей, кто не находится в данный момент в %session или у кого время тайм-аута вышло.

Пробовал реализовать это в событиях страницы %onAfterCreatePage и %onBeforeCreatePage - но всё бестолку, ибо методы js такие как &js<window.location='GUI.WEB.LoginPage.cls'> просто-напросто виснут(вероятно по причине отсутствия самой страницы скрипт страницы работать не может)

Еще есть событие onCreatePage но оно распознает только JavaScript и я не могу там описать сложное условие верификации пользователя Cache. Когда пытаюсь её перенаправить на метод написанный на Cache - ругается и матерится при выполнении.

Короче, есть идеи?
...
Рейтинг: 0 / 0
21.08.2012, 16:20
    #37924937
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верификация пользователя в Zen
feanorchegКороче, есть идеи?
Начинай делать тестовый пример...
...
Рейтинг: 0 / 0
21.08.2012, 16:27
    #37924953
feanorcheg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верификация пользователя в Zen
krvsa,

Тестовый пример? А я непонятно объяснил? Если что он у меня уже есть готовый.
...
Рейтинг: 0 / 0
21.08.2012, 16:33
    #37924969
feanorcheg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верификация пользователя в Zen
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Method verifyUser() [ ZenMethod ]
{
	if $g(%session.Data("user"))'=""
    {
       	set pHashPassword=$g(%session.Data("user"))
			set res=##class(BL.Subj.Employee).CheckLogin(,,pHashPassword)
			if $$$ISERR(res)
			{
				set ^bda("CheckLogin!!!","%OnBeforeCreatePage")=$system.Status.GetErrorText(res)
				set $EC=$system.Status.GetErrorText(res)
			}
    }
	else
	{
			&js<window.location='GUI.WEB.Index.cls'>
	}
}

/// This client method, if present, is called when this component is
/// instantiated. This allows for any additional client-side 
/// initialization for this object.<br>
/// Note that this <em>must</em> be a client-side method.
ClientMethod onCreate() [ Language = javascript ]
{
	this.verifyUser();
}



при переходе к верификации js ругается
...
Рейтинг: 0 / 0
21.08.2012, 17:09
    #37925060
Nikator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верификация пользователя в Zen
feanorcheg, попробуйте так:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Method verifyUser() [ ZenMethod ]
{
	if $g(%session.Data("user"))'=""
    {
       	set pHashPassword=$g(%session.Data("user"))
			set res=##class(BL.Subj.Employee).CheckLogin(,,pHashPassword)
			if $$$ISERR(res)
			{
				set ^bda("CheckLogin!!!","%OnBeforeCreatePage")=$system.Status.GetErrorText(res)
				set $EC=$system.Status.GetErrorText(res)
			}
    }
	else
	{
                  #dim %response As %CSP.Response
  	         set %response.Redirect="GUI.WEB.Index.cls"
		
	}
}

/// This client method, if present, is called when this component is
/// instantiated. This allows for any additional client-side 
/// initialization for this object.<br>
/// Note that this <em>must</em> be a client-side method.
ClientMethod onCreate() [ Language = javascript ]
{
	this.verifyUser();
}
...
Рейтинг: 0 / 0
22.08.2012, 08:18
    #37925554
kolesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верификация пользователя в Zen
feanorchegРебят, такая проблема: есть страница логина, необходимо отсылать на неё с других страниц проекта всех пользователей, кто не находится в данный момент в %session или у кого время тайм-аута вышло.

Приведенный код не соответствует вашей задаче - или задача другая, или код не к ней.

Если же задача именно такая, как в цитате, то отсылать никого никуда не нужно. Достаточно обновить текущую страницу (например, яваскриптом) - каше срастит, что сессии нету и сам предложит залогиниться ;)
...
Рейтинг: 0 / 0
22.08.2012, 09:20
    #37925607
feanorcheg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верификация пользователя в Zen
kolesovfeanorchegРебят, такая проблема: есть страница логина, необходимо отсылать на неё с других страниц проекта всех пользователей, кто не находится в данный момент в %session или у кого время тайм-аута вышло.

Приведенный код не соответствует вашей задаче - или задача другая, или код не к ней.

Если же задача именно такая, как в цитате, то отсылать никого никуда не нужно. Достаточно обновить текущую страницу (например, яваскриптом) - каше срастит, что сессии нету и сам предложит залогиниться ;)

В каком смысле не подходит? Что здесь не так?

Nikatorfeanorcheg, попробуйте так

у меня не выходит даже перейти с события OnCreate на Cache метод.

Ну нет, внутренний механизм я не использовал, задача поставлена так, что необходимо держать сведенья о пользователях в конкретной таблице и не прибегать к внешним механизмам.
...
Рейтинг: 0 / 0
22.08.2012, 10:34
    #37925753
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верификация пользователя в Zen
давно не работал с ZEN
При первом обращении к приложения я полагаю отображаешь страницу авторизации, потому как можешь определить пользователь не прошел авторизацию.
когда прошел авторизацию
зная время таймаута, можно запустить счетчик времени, чтобы по истечении этого времени просто перевел на главную страницу (с авторизацией)

если ты пока вообще никак не авторизуешь, и страница авторизации у тебя отдельная, то в OnPreHTTP каждой страницы тебе нужно определить требуется ли авторизация, и перенаправляешь на страницу авторизации

что то типа этого
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
ClassMethod OnPreHTTP() As %Boolean [ ServerOnly = 1 ]
{
	s requireLogin=1
	i requireLogin {
		s %response.Redirect="LoginPage.cls"
		q 0
	}
	q 1
}
...
Рейтинг: 0 / 0
22.08.2012, 14:34
    #37926337
feanorcheg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верификация пользователя в Zen
DAiMors %response.Redirect="LoginPage.cls"[/src]

Спасибо, получилось=)
...
Рейтинг: 0 / 0
22.08.2012, 16:03
    #37926618
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верификация пользователя в Zen
Про такое даже в документации есть инфа...
http://docs.intersystems.com/cache20102/csp/docbook/DocBook.UI.Page.cls?KEY=TCSP_ResponseExample
...
Рейтинг: 0 / 0
22.08.2012, 16:34
    #37926694
Шваров Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верификация пользователя в Zen
feanorcheg,

Это для ВУЗа контрольная снова?
А какой ВУЗ?
...
Рейтинг: 0 / 0
23.08.2012, 04:54
    #37927308
kolesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верификация пользователя в Zen
feanorchegkolesovпропущено...

Приведенный код не соответствует вашей задаче - или задача другая, или код не к ней.

Если же задача именно такая, как в цитате, то отсылать никого никуда не нужно. Достаточно обновить текущую страницу (например, яваскриптом) - каше срастит, что сессии нету и сам предложит залогиниться ;)

В каком смысле не подходит? Что здесь не так?

Как я понимаю, если пользователь пытается открыть страницу не залогинившись, то ему и так покажется страница с логином.
А если есть желание использовать страницу логина, отличную от дефолтовой, то правильнее, имхо, ее в настройках приложения указать как страницу логина.
...
Рейтинг: 0 / 0
23.08.2012, 08:27
    #37927367
П.С.М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верификация пользователя в Zen
kolesovКак я понимаю, если пользователь пытается открыть страницу не залогинившись, то ему и так покажется страница с логином.
Немного дополню. Для этого галка "Не аутентифицированный" должна быть убрана :)
...
Рейтинг: 0 / 0
23.08.2012, 11:20
    #37927639
feanorcheg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верификация пользователя в Zen
Шваров Евгений,

Это для работы.
А вуз МГТУ им. Баумана

Ребят, спасиб, я просто второй месяц вращаюсь в этой СУБД и всё со сроками торопился, так что не было времени заботнуть как следует.
...
Рейтинг: 0 / 0
23.08.2012, 18:15
    #37928555
gehc2ChSo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верификация пользователя в Zen
feanorchegЭто для работы.

Тогда привет Дмитрию Александровичу!
...
Рейтинг: 0 / 0
24.08.2012, 09:35
    #37928923
feanorcheg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верификация пользователя в Zen
gehc2ChSofeanorchegЭто для работы.

Тогда привет Дмитрию Александровичу!

Фига себе!! Неужели ЭскейпМ единственные, кто программирует профессионально в этой среде?
...
Рейтинг: 0 / 0
24.08.2012, 09:46
    #37928933
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верификация пользователя в Zen
feanorcheggehc2ChSoпропущено...

Тогда привет Дмитрию Александровичу!

Фига себе!! Неужели ЭскейпМ единственные, кто программирует профессионально в этой среде?

Не знаю о чем вы, но компаний профессионально программирующих на Cache, много больше чем одна, тем более в Москве
...
Рейтинг: 0 / 0
24.08.2012, 09:52
    #37928940
П.С.М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верификация пользователя в Zen
feanorchegФига себе!! Неужели ЭскейпМ единственные
Ну почему единственные? Просто нас мало, все дргу друга и так знают
...
Рейтинг: 0 / 0
24.08.2012, 10:18
    #37928963
feanorcheg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Верификация пользователя в Zen
это единственное объяснение тому, что сейчас произошло))
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Верификация пользователя в Zen / 19 сообщений из 19, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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