powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / использование сессий для авторизации
8 сообщений из 8, страница 1 из 1
использование сессий для авторизации
    #37306922
Фотография barl_alibek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стоит ли использовать session для реализации авторизации?
Например:
1 страница - страница ввода логина и пароля
Далее существует переход на вторую станицу, где методами рекуест и сессион мы запускаем процесс авторизации,
проверка логина и пароля
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<script language=Cache runat=server>
 		Do %session.Set("login",%request.Get("login"))
     		Do %session.Set("pass",%request.Get("pass"))
     		set obj=##class(data.User).CheckPassw(%session.Get("login"),%session.Get("pass"))
			</script>
<csp:if condition="obj'=0">
значения свойств класса data.User через sql-запрос
.........
<csp:else>

Вы указали неправильный логин или пароль


На сервере в классе data.User
есть свойтва logins (уникальное), password и name

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
ClassMethod CheckPassw(login As %String, passw As %String) As %Status
{
 set id=$Order(^data.userI("Pervkluch",login,- 1 ))
	if id="" quit  0 
	Set obj=##class(data.User).%OpenId(id)
	if obj.password=passw quit id
	quit  0 
}



Так вот интересует как поведут себя сессии если несколько пользователей решат одновременно
авторизоваться и пользоваться своими персональными данными? И будут ли данные соответствовать введенному логину и паролю?
...
Рейтинг: 0 / 0
использование сессий для авторизации
    #37306927
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых, я бы предостерег от unique свойств, если уникальность нужна, ее лучше организовывать программными проверками.

Далее, вы хотите несколько пользователей запустить под одной сессией? Это было бы несколько странно.
Вы хотите одного пользователя запустить под разными сессиями одновременно? Это нормально, но только сессия не свойство класса пользователей, а отдельная сущность.
Или вопрос в том, повторяются ли сессии? Нет, не повторяются, кроме случая, когда на этом же браузере и на этом же компьютере с этими же куками после прерывания предыдущей сессии вы заходите снова - в этом случае сессия будет другая, но с таким же ID.

А что еще кроме сессий вы можете использовать в csp-авторизации?
...
Рейтинг: 0 / 0
использование сессий для авторизации
    #37306989
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barl_alibekНапример:
1 страница - страница ввода логина и пароля
Далее существует переход на вторую станицу, где методами рекуест и сессион мы запускаем процесс авторизации,
проверка логина и пароля
Почему бы не проверить все на первой же странице в гипперэвенте? Если всё нормально - переходить на другие страницы.
...
Рейтинг: 0 / 0
использование сессий для авторизации
    #37307121
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

А как это защитит от ввода адресов произвольных страниц в адресной строке?
...
Рейтинг: 0 / 0
использование сессий для авторизации
    #37307170
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.А как это защитит от ввода адресов произвольных страниц в адресной строке?
Алгоритм их формирования...

Код: plaintext
1.
2.
3.
4.
<CSP:IF CONDITION='($g(%session.Get("UserId"))="")'>
<p>У вас нет авторизации...</p>
<CSP:ELSE>
<!-- Тут вормировать всё остальное... -->
</CSP:IF>
...
Рейтинг: 0 / 0
использование сессий для авторизации
    #37307196
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barl_alibek ,

Вы можете поступить проще: начальную страницу авторизации сделать обычной (PRIVATE=0), а остальные приватными (PRIVATE=1).
В этом случае неавторизированные пользователи не смогут перейти на произвольные страницы.
Private Pages
...
Рейтинг: 0 / 0
использование сессий для авторизации
    #37309789
Фотография barl_alibek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.,

Блок А.Н.Во-первых, я бы предостерег от unique свойств, если уникальность нужна, ее лучше организовывать программными проверками.
А разве при попытке сохранить одинаковые значения для свойств unique не приведет к пибиканию

Блок А.Н.Далее, вы хотите несколько пользователей запустить под одной сессией? Это было бы несколько странно.
Вы хотите одного пользователя запустить под разными сессиями одновременно? Это нормально, но только сессия не свойство класса пользователей, а отдельная сущность.
Ну если это нормально то тогда все нормально. Мне нравится она потому что можно данные передавать между страницами и использовать в поиске определенных данных.


Блок А.Н.А что еще кроме сессий вы можете использовать в csp-авторизации?
Можно, но зачем?!
...
Рейтинг: 0 / 0
использование сессий для авторизации
    #37309796
Фотография barl_alibek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit,
servitbarl_alibek,

Вы можете поступить проще: начальную страницу авторизации сделать обычной (PRIVATE=0), а остальные приватными (PRIVATE=1).
В этом случае неавторизированные пользователи не смогут перейти на произвольные страницы.
Private Pages
Не эта штука мне не нравится, я просто запускаю на каждой сранице
Код: plaintext
1.
2.
<script language=Cache runat=server>
     		set obj=##class(data.User).CheckPassw(%session.Get("login"),%session.Get("pass"))
			</script>
А на зен-страницах переопределяю метод %OnAfterCreatePage
Код: plaintext
1.
2.
3.
4.
5.
Method %OnAfterCreatePage() As %Status
{
	set obj=##class(data.User).CheckPassw(%session.Get("login"),%session.Get("pass"))
	Quit $$$OK
}
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / использование сессий для авторизации
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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