Форум: "Базы";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
ВнизКак спросить в трехуровневом приложении логин и пароль в БД? Найти похожие ветки
← →
Bukerman © (2004-06-29 16:46) [0]Всем привет!
Подскажите кто сталкивался, как заставить спрашивать прогу через сервер приложений логин и пароль в базу Interbase?
В 2х уровневом приложениии ставлю LoginPrompt = True и все ОК, но вот в 3х уровневом - не получается, использую TDatasetProvider на клиенте и TSocketConnection на сервере, ставлю на TDatasetProvider"e LoginPrompt = True, появляется окно логина, когда ввожу логин/пароль ругается и не пускает....
← →
bushmen © (2004-06-29 16:51) [1]Тут как-то проскакивало. Надо LoginPromt поставить в False, на клиенте самому сделать форму запроса пароля, а на сервере приложений создать процедуру, которая будет проверять наличие пароля на сервере и возвращать на клиента True или False
← →
Bukerman © (2004-06-29 17:01) [2]что-то я не понял...
LoginPrompt поставить в False где, на сервере или на клиенте?
И процедуру какого плана, по какому принципу она будет возвращать данные??
Или ткни пальцем туда, где это проскакивало, я найти что-то не могу.....
← →
Vlad © (2004-06-29 17:06) [3]
> Bukerman © (29.06.04 17:01) [2]
Какой м.б. LoginPrompt на клиенте в трехзвенном приложении ?
На сервере приложений естественно. В противном случае, если не поставить False, окно с запросом пароля будет выскакивать на сервере приложений.
> И процедуру какого плана, по какому принципу она будет возвращать
> данные??
Что значит какого плана ?
Не можешь написать функцию, которая на вход получает логин, пароль и возвращает код ответа ?
← →
Bukerman © (2004-06-29 17:13) [4]> Какой м.б. LoginPrompt на клиенте в трехзвенном приложении ?
> На сервере приложений естественно. В противном случае, если > > не поставить False, окно с запросом пароля будет выскакивать > на сервере приложений.
LoginPrompt если не знаешь есть на SocketConnection
> Что значит какого плана ?
> Не можешь написать функцию, которая на вход получает логин, > пароль и возвращает код ответа ?
Я не могу понять с чем сравнивать, с логином и паролем, кот. прописан в компоненте что ли? И чем не устраивает стандартная форма логин/пароль, зачем свою создавать?
← →
bushmen © (2004-06-29 17:24) [5]>Я не могу понять с чем сравнивать, с логином и паролем, кот. прописан в компоненте что ли
Сравнивать будешь не ты, а сервер БД, которому ты будешь совать логин и пароль пользователя, которые он введет на клиенте!
← →
Bukerman © (2004-06-29 17:32) [6]не могу я догнать что-то....
я с делфями недавно работаю, примерно можно увидеть, что требуется?
заранее спасибо.
← →
bushmen © (2004-06-29 18:02) [7]>я с делфями недавно работаю
А чем тебе 2-х уровневая система не устраивает?
← →
Bukerman © (2004-06-30 15:48) [8]блин, ну как чем, не нужно на каждом клиенте ставить клиента интербазы
меня интересует вопрос, как логин и пароль с клиента передать на сервер для проверки?
← →
bushmen © (2004-06-30 16:31) [9]Тебе я в [1] ответил
← →
Bukerman © (2004-06-30 16:36) [10]я эту процедуру, вернее функцию, уже написал, с двумя входными параметрами: логин и пароль, возвращает - true или false.
но как мне в нее передать эти параметры с клиента?
← →
Sandman25 © (2004-06-30 16:39) [11]...AppServer.CheckLogin(Encrypt(edUser.Text), Encrypt(edPassWord.Text));
← →
Bukerman © (2004-06-30 17:43) [12]блин, я не могу понять, подскажите плз кто-нибудь...
я так и делаю, вот моя функция на сервере, объявленная в секции public:
function TAppSrv.Test(Login, Password: string):Boolean;
begin
if ((Login="SYSDBA") and (Password="masterkey")) then
Result:=True
else Result:=False;
end;
вот вызов из клиента:
if f_DM.SocketConnection1.AppServer.Test("SYSDBA", "yar")
then ShowMessage("получилось!");
выдается ошибка "Invalid variant operation", что я делаю не так?
← →
Sandman25 © (2004-06-30 17:48) [13]В COM нет типа String. Используйте OleVariant или WideString
← →
Bukerman © (2004-06-30 18:39) [14]все сделал через мастер, меню Edit->Add interface
вот функция:
function TAppSrv.Test(const Login, Password: WideString): Integer;
begin
if ((Login="SYSDBA") and (Password="masterkey")) then
Result:=1
else Result:=0;
end;
вот ее вызов из клиента:
if f_DM.SocketConnection1.AppServer.Test("SYSDBA", "masterkey")=1
then ShowMessage("получилось!");
но ошибка та же самая
"Invalid variant operation" :((((((((((((((((((((((((((
что мне нужно сделать?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.036 c