|
|
|
Доступ к базе данных MS SQL (JavaScript)
|
|||
|---|---|---|---|
|
#18+
Добрый день, коллеги. Хочу попросить небольшой помощи у программистов JavaScript. К одной из наших "марохаек", обеспечивающий доступ к интернету по Wifi, прилагается пример в виде html страницы для авторизации. На странице запрашивается пароль и логин абонента. Дальше это отправляется в RADIUS-сервер и абонент получает (или не получает) доступ в интернет. Страничка имеет раздел на JavaScript, который запускается, как я понял, по нажатию кнопки: <script> function submitAction(){ var link = document.location.href; var searchString = "redirect="; var equalIndex = link.indexOf(searchString); var redirectUrl = ""; if (document.forms[0].action == "") { var url = window.location.href; var args = new Object(); var query = location.search.substring(1); var pairs = query.split("&"); for(var i=0;i<pairs.length;i++){ var pos = pairs[i].indexOf('='); if(pos == -1) continue; var argname = pairs[i].substring(0,pos); var value = pairs[i].substring(pos+1); args[argname] = unescape(value); } document.forms[0].action = args.switch_url; } if(equalIndex >= 0) { equalIndex += searchString.length; redirectUrl = ""; redirectUrl += link.substring(equalIndex); } if(redirectUrl.length > 255) redirectUrl = redirectUrl.substring(0,255); document.forms[0].redirect_url.value = redirectUrl; document.forms[0].buttonClicked.value = 4; document.forms[0].submit(); } function loadAction(){ var url = window.location.href; var args = new Object(); var query = location.search.substring(1); var pairs = query.split("&"); for(var i=0;i<pairs.length;i++){ var pos = pairs[i].indexOf('='); if(pos == -1) continue; var argname = pairs[i].substring(0,pos); var value = pairs[i].substring(pos+1); args[argname] = unescape(value); } document.forms[0].action = args.switch_url; if(args.statusCode == 1){ alert("You are already logged in. No further action is required on your part."); } else if(args.statusCode == 2){ alert("You are not configured to authenticate against web portal. No further action is required on your part."); } else if(args.statusCode == 3){ alert("The username specified cannot be used at this time. Perhaps the user is already logged into the system?"); } else if(args.statusCode == 4){ alert("Wrong username and password. Please try again."); } else if(args.statusCode == 5){ alert("The User Name and Password combination you have entered is invalid. Please try again."); } } </script> А теперь сам вопрос. Можно ли из этого скрипта организовать прямое подключение к базе данных на MS SQL 2008, сделать запрос (либо запустить встроенную процедуру) и получить (принять) ответ, по которому этот скрипт, например, вообще не исполнять. Что то типа: подключились Provider=SQLOLEDB.1;Server=ИмяСервера;Database=БД;Trusted_Connection=yes;Integrated Security=SSPI;Persist Security Info=False; выполнили некий запрос SELECT b FROM Table1 WHERE a=<логин со страницы> переменную считали b и использовали в условии: выполнять приведенный выше скрипт или нет. Большое спасибо откликнувшимся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2014, 09:00 |
|
||
|
Доступ к базе данных MS SQL (JavaScript)
|
|||
|---|---|---|---|
|
#18+
Здесь на форуме нашел вот такой пример: var oADODBconn = null; oADODBconn = new CreateObject("ADODB.Connection"); oADODBconn = new ActiveXObject("ADODB.Connection"); sSource = "SELECT * FROM .dbo.Table WHERE a='dfdfdff'"; oADODBconn.Open("Provider=msdasql;DRIVER={SQL Server};Server=192.168.x.x;Database=xxxxx;UID=xx;PWD=xxx;"); rs = oADODBconn.Execute(sSource); oADODBconn = null Но в этом разделе автор примера жалуется на выскакивающее сообщение о безопасности. Можно ли вызвать процедуру из MSSQL и получить в скрипт для дальнейшей обработки ее выходные параметры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2014, 09:39 |
|
||
|
Доступ к базе данных MS SQL (JavaScript)
|
|||
|---|---|---|---|
|
#18+
IMOLМожно ли вызвать процедуру из MSSQL и получить в скрипт для дальнейшей обработки ее выходные параметры? непосредственное обращение к sql-серверу нужно делать не на клиенте, а на вебсервере ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2014, 09:44 |
|
||
|
Доступ к базе данных MS SQL (JavaScript)
|
|||
|---|---|---|---|
|
#18+
Огромное спасибо за помощь. Вы бы не могли бы мне, как "обезьяне" в этом вопросе, в двух словах прояснить этот вопрос :). То, что вы предлагаете обращаться к базе с web-сервера, а не с клиента - это вопрос безопасности, как я понимаю? Однако в "исходных данных" я имею некий пример (прилагаемый к нашей "марахайке") в виде готовой html страницы с кнопкой и двумя полями ввода: логин и пароль для подключения к wifi. А также готового JavaScript, который, как я понимаю, запускается по нажатию этой кнопки. Дальше, по запуску этого скрипта (а что он конкретно делает - я лишь догадываюсь в виду своей некомпетентности в этом вопросе :)), инициируется обращение нашей cisco (которая выполняет функцию NASа) к radius серверу и абоненту представляется (или отказывается) доступ в интернет. Идея состоит в том, чтобы в этом скрипте как-то сразу получить информацию об абоненте из базы данных и просто не запускать процедуру авторизации на radius, а просто сразу отказать в доступе. Ну, что-то так. Прошу прощение за многословие...:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2014, 11:32 |
|
||
|
Доступ к базе данных MS SQL (JavaScript)
|
|||
|---|---|---|---|
|
#18+
IMOL, нормально опишите задачу: что такое "марахайка", кто и где открывает html страницу, зачем этой странице доступ к MS SQL и где находится база, куда нужно передать результаты обработки параметров, в "марахайку"? Тогда пусть "марахайка" и лезет в базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2014, 11:54 |
|
||
|
Доступ к базе данных MS SQL (JavaScript)
|
|||
|---|---|---|---|
|
#18+
Имеем Cisco Wireless Services Module (WiSM) в контролер которой в виде зип-архива заливается страничка авторизации (о которой и идет сейчас речь). Страничка входила в комплект примеров. Пририсовать к ней наши логотипы - на это у нас ума хватило :). Но хотелось бы эту страничку более основательно переработать. А именно. Сейчас, после попадания на эту страничку (повторюсь, она находится на самом wism и там, как я понимаю, есть какой-то встроенный web-сервер). Абонент вводит свои логин и пароль, жмет кнопку и запускает скрипт. Wism с этим паролем и логином запрашивает radius сервер (freeradius) и в результате абонент либо получает доступ, либо нет. В связи с этим возник вопрос, можно ли сразу в Js встроить некое обращение к серверу баз данных (MS SQL 2008) (до запуска существующего алгоритма) для получения некоторых данных по абоненту, который позволят вообще не выполнять приведенный скрипт и обращение к radius. То есть, возможно ли упростить алгоритм в данному случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2014, 12:20 |
|
||
|
Доступ к базе данных MS SQL (JavaScript)
|
|||
|---|---|---|---|
|
#18+
IMOLТо есть, возможно ли упростить алгоритм в данному случае? вряд ли это будет упрощением на радиусе делайте всё необходимое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2014, 12:35 |
|
||
|
Доступ к базе данных MS SQL (JavaScript)
|
|||
|---|---|---|---|
|
#18+
IMOLСейчас, после попадания на эту страничку (повторюсь, она находится на самом wism и там, как я понимаю, есть какой-то встроенный web-сервер). Абонент вводит свои логин и пароль, жмет кнопку и запускает скрипт. Wism с этим паролем и логином запрашивает radius сервер (freeradius) и в результате абонент либо получает доступ, либо нет.Я так полагаю, что абонент со своего компа обращается к wism, через встроенный веб-сервер. А не в комнату с железкой заходит :) А где стоит база MS SQL Server Вы так и не сказали. Но это не важно. Думаю Вы не планируете каждому абоненту давать доступ к этой базе, чтобы его браузер мог туда обратиться за какими-то параметрами. Или планируете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2014, 14:08 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=38619396&tid=1447183]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
173ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 499ms |

| 0 / 0 |
