Гость
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Авторизация / 25 сообщений из 31, страница 1 из 2
23.05.2013, 12:48
    #38269867
Sh.alena
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Здравствуйте! Я новичок в Cache, не могу доделать свою страницу авторизации. Я создала класс Index.csp. В нем имеется такой вот код:
Код: html
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.
29.
30.
31.
32.
33.
34.
<html>

<head>
</style>

<!-- Put your page Title here -->
<title>	Hello world!!!</title>
</head>

<body  onload="pageLoad();">

<text >
<text >


		<!-- Put your page code here -->
		My page body
		</body>
</html>

<script language="javascript">
	// данный код взят из системных классов
	function pageLoad()
	{
		
		if (self.document.Login && self.document.Login.CacheUserName) {
			self.document.Login.CacheUserName.focus();
			self.document.Login.CacheUserName.select();
		}
		return true;
	}
	

	</script>


Авторизация насколько я понимаю проходит, но не получается сделать переадресацию в случае успешной аутентификации на другой класс. Не подскажете как это сделать? Заранее большое спасибо!
...
Рейтинг: 0 / 0
23.05.2013, 13:19
    #38269943
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Sh.alena , мне интересно несколько моментов:
- какой смысл помещать скрипт после </html>?
- где сама проверка авторизации?

Если делаешь тестовый пример - так делай его полным...
...
Рейтинг: 0 / 0
23.05.2013, 13:20
    #38269945
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Sh.alenaЯ создала класс Index.csp
Это не класс, это страница...
...
Рейтинг: 0 / 0
23.05.2013, 13:26
    #38269962
Sh.alena
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
krvsa Sh.alena , мне интересно несколько моментов:
- какой смысл помещать скрипт после </html>?
- где сама проверка авторизации?

Если делаешь тестовый пример - так делай его полным...

Это системный код Cache, он работает даже после тега </html>

krvsa Sh.alena
Это не класс, это страница...


Да, вы правы, ошиблась)

У вас есть рабочий код авторизации?
...
Рейтинг: 0 / 0
23.05.2013, 13:28
    #38269967
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Sh.alenaЭто системный код Cache, он работает даже после тега </html>
Есть определенные правила структуры ХТМЛ документа - нужно их соблюдать. Откуда взялся тот "системный код Cache"? Это вообще JavaScript...
...
Рейтинг: 0 / 0
23.05.2013, 13:30
    #38269972
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Sh.alenaУ вас есть рабочий код авторизации?
У меня есть... И несколько. Только не факт что какой-то из них подойдет тебе... Т.к. я х/з что тебе нужно в итоге...
...
Рейтинг: 0 / 0
23.05.2013, 13:38
    #38269986
Sh.alena
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
krvsaSh.alenaЭто системный код Cache, он работает даже после тега </html>
Есть определенные правила структуры ХТМЛ документа - нужно их соблюдать. Откуда взялся тот "системный код Cache"? Это вообще JavaScript...

Я взяла эту часть кода вот здесь: docs.intersystems.com/csp/samples/menu.csp

Весь код страницы выглядит следующим образом:
Код: html
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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
<html><head>
  <title>Login CACHE20102</title>
 
<link rel="stylesheet" type="text/css" href="/csp/sys/intersystems.css">
<script language="javascript">
// called when page is loaded
function pageLoad()
{
 // see if we can give focus to the UserName field:
 if (self.document.Login && self.document.Login.CacheUserName) {
  self.document.Login.CacheUserName.focus();
  self.document.Login.CacheUserName.select();
 }
 return true;
}
 </script>
</head>
  <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="pageLoad();">
  

 <table width="100%" border="0" cellpadding="0" cellspacing="0" style="background: #388CCC; margin:0px;">
 <tr>
 <td nowrap bgcolor="#FFFAE7" valign="top" align="left"><a target="_top" href="http://www.intersystems.com/index.html"><img src="/csp/sys/images/logo-topl-intersystems.gif" border="0"></a></td>
    <td nowrap bgcolor="#FFFAE7" valign="top" align="left">
    <div class="wizardltlabel" style="margin-top:10px;"><span style="font-size:8pt; padding-right:5px;">Server:</span><b>docs.intersystems.com</b>&nbsp;</div>
    <div class="wizardltlabel" style="margin-top:10px;"><span style="font-size:8pt; padding-right:5px;">Instance:</span><b>CACHE20102</b>&nbsp;</div>
 <td width="370"><img src="/csp/sys/images/opposite-pic-intersys.jpg" alt="Login page" border="0"></td>
 <td width="60%" bgcolor="#388CCC" valign="bottom">&nbsp;</td>
 </tr>
  <tr>
  <td colspan="4" bgcolor="#D36D00"><img src="/csp/sys/images/spacer.gif" width="100%" height="2" alt="-" border="0"></td>
  </tr>
  </table>
<table border="0" align="center">
  <tr>
 <td colspan="10" align="center">
  <table border="0" class="LayoutMain" width="100%" cellpadding="0" cellspacing="0">
  <tr><td class="LayoutContentCol" width="80%" align="left"><br>
 <div class="Text1" style="padding-bottom: 5px; color: darkblue; font-size: 0.9em;">Please enter your user name and password to log in:</div>
 </td></tr>
 <tr><td align="center">
 <form name="Login" method="post" action="/csp/samples/menu.csp">

<input type="hidden" name="CSPCHD" value="0b200j010000319j7IDiqr0000909KFgocrKv9SKpXZsm6aA--"/>
<input type="hidden" name="CSPRQN" value="E"/>

 <table class="AutoForm">
 <tr><td>
 <tr class="AutoForm" valign="center">
 <td class="AutoFormCaption" nowrap>User Name:</td>
 <td class="AutoFormControl" nowrap>
   <input type="text" size="40" name="CacheUserName" value="">&nbsp;
  </td>
  </tr>
 <tr>
 <td class="AutoFormCaption" nowrap>Password:</td>
 <td class="AutoFormControl" nowrap>
  <input type="password" size="25" name="CachePassword">&nbsp;
 </td>
 </tr>
 <tr>
  <td>&nbsp;</td>
  <td><input type="submit" name="CacheLogin" value="Login"></td>
 </tr>
 </table>
 </form>
</body></html>


И как она делает проверку логина и пароля?
...
Рейтинг: 0 / 0
23.05.2013, 13:41
    #38269995
Sh.alena
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
krvsaSh.alenaУ вас есть рабочий код авторизации?
У меня есть... И несколько. Только не факт что какой-то из них подойдет тебе... Т.к. я х/з что тебе нужно в итоге...

Мне нужно сделать проверку логина и пароля, в случае если и то и другое введено верно, я делаю переадресацию на другую страницу.
...
Рейтинг: 0 / 0
23.05.2013, 13:49
    #38270005
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Sh.alenaЯ взяла эту часть кода вот здесь: docs.intersystems.com/csp/samples/menu.csp
Как называется та страница?
Я как раз на неё тебя и хотел вывести... Но никак не найду нужную ссылку в том меню...


Sh.alenaИ как она делает проверку логина и пароля?
Там нет проверки...
Просто запрашиваются поля и данные формы передаются на страницу указаную в action формы...

Код: html
1.
<form name="Login" method="post" action="/csp/samples/menu.csp">
...
Рейтинг: 0 / 0
23.05.2013, 13:50
    #38270012
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Sh.alenaМне нужно сделать проверку логина и пароля
С чем будет осуществляться проверка? Т.е. где те логины с паролями хранятся? Проверку делать на этой же странице или на другой?
...
Рейтинг: 0 / 0
23.05.2013, 13:57
    #38270036
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Sh.alena ,

Для перехода на другую страницу:<html>
<head>
<script language="javascript">
function test()
{
  self.document.location='#url(another.csp)#';
}
</script>
</head>
<body>
<input type="button" value="Перейти" onclick="test()">
</body>
</html>Также Вы можете создать свою страницу логина на основе %CSP.Login.cls , унаследовавшись от этого класса.

Советую посмотреть Caché Server Pages QuickStart Tutorial и Caché Web Applications Tutorial .
Готовый пример страницы логина можно найти в одном из уроков .
...
Рейтинг: 0 / 0
23.05.2013, 13:59
    #38270042
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Вот еще один пример из доки ...
...
Рейтинг: 0 / 0
23.05.2013, 13:59
    #38270043
Sh.alena
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Достаточно добавить этот код на любую csp страницу
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<script language="javascript">
// called when page is loaded
function pageLoad()
{
 // see if we can give focus to the UserName field:
 if (self.document.Login && self.document.Login.CacheUserName) {
  self.document.Login.CacheUserName.focus();
  self.document.Login.CacheUserName.select();
 }
 return true;
}
 </script>


Он автоматически вызовет форму авторизации реализованную в Cache. К которой у меня нет доступа.
Код: html
1.
<body  onload="pageLoad();">


Мне нужно сделать переход на другую страницу после проверки логина и пароля.
...
Рейтинг: 0 / 0
23.05.2013, 14:06
    #38270055
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Sh.alenaМне нужно сделать переход на другую страницу после проверки логина и пароля.
Т.е. проверять на этой странице... И в случае успеха переходть на другую страницу?

А с чем будешь проверять-то? С какими логинами и паролями?
...
Рейтинг: 0 / 0
23.05.2013, 14:09
    #38270063
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Sh.alenaДостаточно добавить этот код на любую csp страницу
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<script language="javascript">
// called when page is loaded
function pageLoad()
{
 // see if we can give focus to the UserName field:
 if (self.document.Login && self.document.Login.CacheUserName) {
  self.document.Login.CacheUserName.focus();
  self.document.Login.CacheUserName.select();
 }
 return true;
}
 </script>


Он автоматически вызовет форму авторизации реализованную в Cache. К которой у меня нет доступа.
Если бы ты знала как глубоко ты ошибаешся...

И к Каше он вообще никакого смысла не имеет...
...
Рейтинг: 0 / 0
23.05.2013, 14:11
    #38270066
Sh.alena
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Логин и пароль пользователя хранится в %SYS.security.Users.cls.
Как это реализовано в %CSP.Login.cls?
...
Рейтинг: 0 / 0
23.05.2013, 14:32
    #38270122
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Sh.alena , вот тебе "набросок"...

Код: html
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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
function test() {
	var login=document.getElementById('login').value;
	var password=document.getElementById('password').value;
	var ok=#server(..cTest(login,password))#;
	if (ok==1) return true;
	alert(ok);
	return false;
};
</script>

<csp:method name="cTest" arguments="Login:%String,Password:%String" returntype="%String">  
   // Проверка логина и пароля
   // Если проверка успешна - возвращай 1
   q 1
</csp:method>

</head>
<body>
<form name='frm' action='тут_укажи_нужную_страницу' onsubmit='return test();'>
	<label>Логин
		<input type='text' id='login' />
	</label>
	<label>Пароль
		<input type='password' id='password' />
	</label>
	<input type='submit' value='Регистрация' />
</form>
</body>
</html>
...
Рейтинг: 0 / 0
23.05.2013, 14:40
    #38270142
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Sh.alenaЛогин и пароль пользователя хранится в %SYS.security.Users.cls.
Что-то не нахожу у себя в доке описание такого класса...

Sh.alenaКак это реализовано в %CSP.Login.cls?
Я х/з...
...
Рейтинг: 0 / 0
23.05.2013, 14:43
    #38270150
Sh.alena
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
krvsa, спасибо огромное!!!! А у вас есть какой-нибудь примерчик проверки логина и пароля, которые находятся в %SYS.security.Users.cls?
...
Рейтинг: 0 / 0
23.05.2013, 14:45
    #38270154
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Sh.alenaА у вас есть какой-нибудь примерчик проверки логина и пароля, которые находятся в %SYS.security.Users.cls?
У меня и класса-то такого в доке нет...
...
Рейтинг: 0 / 0
23.05.2013, 14:47
    #38270159
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Sh.alenaЯ взяла эту часть кода вот здесь: docs.intersystems.com/csp/samples/menu.csp
Весь код страницы выглядит следующим образом:Код страницы нужно смотреть не в браузере, а исходный.
В исходном коде нет такого:
Код: html
1.
<input type="hidden" name="CSPCHD" value="0b200j010000319j7IDiqr0000909KFgocrKv9SKpXZsm6aA--"/>


Посмотрите файл %CacheHome%\CSP\samples\menu.csp у себя локально на машине.

Надо полагать, Вы используете встроенную аутентификацию CSP по паролю. Тогда с Вашей стороны вообще ничего не нужно проверять.
Просто введите логин/пароль и дальше автоматически будет переход на ранее запрошенную страницу.
А текущего пользователя в своём коде можно узнать с помощью $USERNAME
...
Рейтинг: 0 / 0
23.05.2013, 14:51
    #38270171
Sh.alena
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
krvsa, странно, у меня есть. В системной области, пакет security, класс Users.cls. Нашла это здесь:
docs.intersystems.com/ens20121/csp/documatic/%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=%25SYS&CLASSNAME=%25SYSTEM.Security.Users
...
Рейтинг: 0 / 0
23.05.2013, 15:01
    #38270199
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Sh.alenaкоторые находятся в %SYS.security.Users.cls ?
Sh.alenaу меня есть. В системной области, пакет security, класс Users.cls .
Обманщица!!!
...
Рейтинг: 0 / 0
24.05.2013, 08:28
    #38271209
Sh.alena
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Никак не могу разобраться с проверкой. Ни у кого нет примера такой проверки на правильность введенного логина и пароля? Мне нужно взять логин и пароль из системного класса, в котором хранятся все пользователи (сист-ая область.security.Users.cls).
...
Рейтинг: 0 / 0
24.05.2013, 08:56
    #38271240
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Sh.alena ,

Посмотрите метод %CSP.Session:Login()

Можно узнать для чего понадобилось самостоятельно проверять системные логин/пароль, а не оставить это на откуп стандартной страницы авторизации, которая помимо прочего обрабатывает Kerberos и двухфакторную аутентификацию?
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Авторизация / 25 сообщений из 31, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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