|
|
|
Авторизация пользователя в БД из клиентского приложения
|
|||
|---|---|---|---|
|
#18+
Всем доброго времени суток. Возникли некоторые трудности с взаимодействием клиентского приложения и soap-сервера. Мне нужно реализовать простую авторизацию пользователя через web-сервис в БД. Для этого, на клиенте делаю форму с вводом логина и пароля, после чего, передаю их через soap connenction в soapDataModule с помощью удаленного метода, где проверяю корректность ввода. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Соответственно, в событии onWillConnect DataSetProvider'а вставляю данные учетки: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. На клиенте метод ConnectDB у меня вызывается только при входе в приложение. Для запроса данных использую Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. На сервере обрабатываю запрос так Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Проблема в том, что при каждой активации запроса (ADOQuery1.Active := True;) вызывается onWillConnect и ему нужны данные учетки для предоставления результата запроса. Есть ли способ передавать данные учетной записи вместе с запросом данных (DataRequest)? Заранее прошу прощения если где-то не так выразился. Только недавно начал изучать работу web-сервисов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 15:53 |
|
||
|
Авторизация пользователя в БД из клиентского приложения
|
|||
|---|---|---|---|
|
#18+
Disite, ADOConnection1.LoginPromt := False ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 16:01 |
|
||
|
Авторизация пользователя в БД из клиентского приложения
|
|||
|---|---|---|---|
|
#18+
Gerasimenko, где именно нужно ставить loginPromt := False? я ставил в ADOConnection1WillConnect и программа не требует каждый раз вводить учетку. Но в ADOConnection1WillConnect я только один раз передаю логин и пароль из клиентской формы, а по факту,ADOConnection1WillConnect вызывается при каждом запросе данных от клиента и ему уже не передается логин и пароль, ADOConnection1 их не сохраняет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 16:27 |
|
||
|
Авторизация пользователя в БД из клиентского приложения
|
|||
|---|---|---|---|
|
#18+
DisiteGerasimenko, где именно нужно ставить loginPromt := False? я ставил в ADOConnection1WillConnect и программа не требует каждый раз вводить учетку. Но в ADOConnection1WillConnect я только один раз передаю логин и пароль из клиентской формы, а по факту,ADOConnection1WillConnect вызывается при каждом запросе данных от клиента и ему уже не передается логин и пароль, ADOConnection1 их не сохраняет. Поставь один раз в дизайне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 17:46 |
|
||
|
Авторизация пользователя в БД из клиентского приложения
|
|||
|---|---|---|---|
|
#18+
Gerasimenko, уже и в дизайне попробовал. Поменял немного метод ConnectDB но результат собственно тот же. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Проблема то в том, что при каждом обращении клиента к данным на сервер через DataRequest, ConnectionString у ADOConnection сбрасывается на дефолтную, хотя через ConnectDB я меняю ConnectionString при корректной авторизации на клиенте. Может как то иначе можно выполнять такую авторизацию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 18:00 |
|
||
|
Авторизация пользователя в БД из клиентского приложения
|
|||
|---|---|---|---|
|
#18+
Disiteпри каждой активации запроса (ADOQuery1.Active := True;) вызывается onWillConnect Другими словами, у тебя при закрытии твоего запроса почему-то делается отсоединении от сервера БД Ищи в районе ADO - где и почему он или ты отключаешься от БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 18:12 |
|
||
|
|

start [/forum/topic.php?fid=58&gotonew=1&tid=2041183]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
7ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 274ms |
| total: | 542ms |

| 0 / 0 |
