Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > по паролю зайти в нужное приложение


Автор: Anatom 6.4.2009, 18:37
здравствуйте, не подскажите как быть у меня есть база данных на sql 2000 и клиенское приложение сделанное на делфи, оно состоит из двух частей: приложение менеджера и приложение диспечера, не подскажите  как при вводе пароля в делфи открывалось нужное приложение. подскажите пожалуйста не знаю с чего начать?   

Автор: Kbl4AH 6.4.2009, 20:24
если введен пароль менеджера, то открыть приложение менеджера,
если диспетчера, то диспетчера=)
Цитата(Anatom @  6.4.2009,  19:37 Найти цитируемый пост)
клиенское приложение сделанное на делфи, оно состоит из двух частей

программа одна или две?

Автор: Keeper89 6.4.2009, 20:42
задание сформулируйте по-человечески

Автор: Anatom 6.4.2009, 20:59
Цитата(Kbl4AH @  6.4.2009,  20:24 Найти цитируемый пост)
программа одна или две?


две разные программы, я имею ввиду два разных ехе.

Добавлено через 3 минуты и 45 секунд
Цитата(Keeper89 @ 6.4.2009,  20:42)
задание сформулируйте по-человечески

Не знаю будет ли это почеловечески. При запуске появляеться окно в которое ты вводишь логин и пароль и в зависимости от введенного пароля и логина будет выводиться приложение менеджера или диспечера. Какие ресурсы использую описал выше.

Автор: mopsa 6.4.2009, 21:03
т.е нужно создать форму для ввода учетных данных,
и в зависимости от того какие данные введены запускать то или иное приложение
правильно?

Автор: Anatom 6.4.2009, 21:03
да

Добавлено через 53 секунды
просто я не знаю к чему это привязать к делфи или к бд

Автор: mopsa 6.4.2009, 21:06
следующий вопрос: где хранятся и в каком виде аунтификационные данные?


 и по какому признаку определяется какое приложение должно быть запущено? 

Автор: Anatom 6.4.2009, 21:11
а что за аунтификационные данные?

Добавлено через 2 минуты и 12 секунд
логин и пароль

Добавлено через 4 минуты и 43 секунды
если вы про них то при создание бд я использовал учетные сведенья Windows, а в делфия вообще подобного не делал

Добавлено через 6 минут и 56 секунд
Цитата(mopsa @ 6.4.2009,  21:06)
 и по какому признаку определяется какое приложение должно быть запущено?

если честно я не знаю, сказали что хорошо если это будет, а как сделать я не представляю, может посоветуете? 

Автор: mopsa 6.4.2009, 21:22
смотри т.е.
1. в БД есть логин и пароль
2. в БД должны быть указаны права на запуск 1или 2 приложения

по логину проверяешь пароль, и смотришь что можно запустить, то и запускаешь

логика то проста, или у тебя проблемы с реализацией?
если так то выкладывай что есть и будем смотреть.

Автор: Anatom 6.4.2009, 21:25
да с реализаций точно проблемно, что именно выложить?

просто данные для двух приложений беру из одной бд, получаеться там как то можно указать приложения делфи?

может что-то нужно выбрать в папке security в sql servere?

Автор: mopsa 6.4.2009, 21:28
исходники формы с полями ввода и с зацепкой на sql, описание полей таблицы с данными о пользователях
 

Автор: Anatom 6.4.2009, 21:32
если говорить о коде в делфи то для связи я использую хранимую процедуру которая сохраняет данные из грида в бд, а так я использую компоненты adoconnection, adotable, datasource, datastoredproc. код процедуры выложить?

Автор: mopsa 6.4.2009, 21:35
да
и еще вопрос: а что помешает пользователю на прямую запускать те приложения в обход проверки логина и пароля?

Автор: Anatom 6.4.2009, 21:36
Просто преподаватель требует

Код процедуры:
procedure TForm1.Button5Click(Sender: TObject);
begin
form4.ADOStoredProc2.Parameters.ParamByName('@FIO').Value:=form4.AdoTable2.FieldByName('ФИО').Value;
form4.ADOStoredProc2.Parameters.ParamByName('@Nompasporta').Value:=form4.AdoTable2.FieldByName('Номпаспорта').Value;
form4.ADOStoredProc2.Parameters.ParamByName('@telefon').Value:=form4.AdoTable2.FieldByName('телефон').Value;
form4.ADOStoredProc2.Parameters.ParamByName('@firma').Value:=form4.AdoTable2.FieldByName('название фирмы').Value;
form4.ADOStoredProc2.Parameters.ParamByName('@mestootp').Value:=form4.AdoTable2.FieldByName('id место отправления').Value;
form4.ADOStoredProc2.Parameters.ParamByName('@mestoprib').Value:=form4.AdoTable2.FieldByName('id место прибытия').Value;
form4.ADOStoredProc2.Parameters.ParamByName('@tipvagona').Value:=form4.AdoTable2.FieldByName('id тип вагона').Value;
form4.ADOStoredProc2.Parameters.ParamByName('@nomerreisa').Value:=form4.AdoTable2.FieldByName('№рейса').Value;
form4.ADOStoredProc2.Parameters.ParamByName('@otprav').Value:=form4.AdoTable2.FieldByName('дата отправления').Value;
form4.ADOStoredProc2.Parameters.ParamByName('@prib').Value:=form4.AdoTable2.FieldByName('дата прибытия').Value;
form4.ADOStoredProc2.Parameters.ParamByName('@nomerpoezda').Value:=form4.AdoTable2.FieldByName('№поезда').Value;
form4.ADOStoredProc2.ExecProc;
form4.ADOTable2.Close;
form4.ADOTable2.Open;
end;

Автор: mopsa 6.4.2009, 21:37
показывай посмотрим


Автор: Anatom 6.4.2009, 21:41
вы просили показать описание полей таблицы с данными о пользователях, а что это за инфа?

Автор: mopsa 6.4.2009, 21:45
ты меня запутал
давай по-порядку:

1. есть 2 типа пользователей: менеджер и диспетчер
2. должна быть таблица в БД с учетными записями пользователей, в ней должно быть поле относящее пользователя к тому или иному типу

а ты приводишь параметры к не понятно какому запросу, но судя по этим данным это абсолютно не то

Добавлено через 4 минуты и 59 секунд
смотри есть у тебя БД к примеру test
в ней таблица users
в таблице поля id, login, password, rights
в этой таблице будет храниться инфа о пользователях: менеджерах  и идиспетчерах
понимаешь?

Автор: Anatom 6.4.2009, 21:51
объясняю у меня есть проект сделанный в делфи, у меня там есть компонеты ado  и грид который показывает данные из бд, код процедуры который я скопировал он из приложения менеджера, в приложение диспечера тоже есть  все эти компоненты но там выводяться другие данные из бд, может мне заскринить? я на 30 мин отлучюсь

Автор: mopsa 6.4.2009, 21:53
после ввода логина и пароля проверяем есть ли такой пользователь в нашей таблице если есть проверяем пароль
если все нормально смотрим какие у него права ну и запускаем соответствующий exe

Автор: Kbl4AH 6.4.2009, 21:59
 smile 
ставлю на Anatom'а smile 

Автор: Anatom 6.4.2009, 22:31
эту инфу можно узнать правой кнопкой мыши на табл данные которых я использую в своих приложениях, так?

Добавлено через 1 минуту и 43 секунды
Цитата(Kbl4AH @ 6.4.2009,  21:59)
smile 
ставлю на Anatom'а smile

лутше бы не смеялись, а помогли

Добавлено через 3 минуты и 43 секунды
а как связать поля ввода логина и пароля из приложения делфи с данными логина и пароля в бд

Автор: mopsa 6.4.2009, 22:37
Цитата(Anatom @ 7.4.2009,  01:31)
эту инфу можно узнать правой кнопкой мыши на табл данные которых я использую в своих приложениях, так?

не понял

Автор: Anatom 6.4.2009, 22:40
я имею ввиду как мне сейчас узнать какой логин и пароль у бд, и как его можно изменить или задать?

Автор: Keeper89 6.4.2009, 23:53
2 страницы вот этого ->  smile  smile 

Anatom:
Задание ясно - 2 EXE для 2 групп пользователей на одной БД (зачем нужно 2 приложения все-таки не пойму, а если их 2 и полномочия уже разделены зачем какой-то ввод пароля, если можно для каждой группы развернуть свою копию программы...).

Как я понимаю, вам нужен пример программной реализации. Если да, то напишите по пунктам каких действий.

З.Ы. Как вариант, почему не разделять полномочия средствами самой СУБД (кстати какую используете)?

Автор: Anatom 7.4.2009, 10:39
Цитата(Keeper89 @  6.4.2009,  23:53 Найти цитируемый пост)
З.Ы. Как вариант, почему не разделять полномочия средствами самой СУБД (кстати какую используете)?


 использую Sql Server 2000

Добавлено через 14 минут и 50 секунд
Цитата(Keeper89 @  6.4.2009,  23:53 Найти цитируемый пост)
Задание ясно - 2 EXE для 2 групп пользователей на одной БД (зачем нужно 2 приложения все-таки не пойму, а если их 2 и полномочия уже разделены зачем какой-то ввод пароля, если можно для каждой группы развернуть свою копию программы...).


Может я  не так  сам понял, но мне подсказали что ввод пароля и логина нужен для аутентификации пользователя, т.е. тот же самый менеджер не мог зайти в ехе диспечеру и наоборот. На счет реализаци тогда получаеться что мне не нужно сравнивать пароль и логин с паролем и логином в sql, а просто реализовать проверку пароля и пользователя на делфи. И вот эту штуку я не знаю как сделать подскажите пожалуйста?

Автор: Anatom 7.4.2009, 11:02
ой

Автор: Kbl4AH 7.4.2009, 11:11
Anatom, да что непонятно?
Делаете форму на которой 2 едита... в один вводите логин, в другой пароль... делаете запросе к таблице базы, в которорой у вас аутентификационные данные пользователей хранятся... если логин и пароль корректны, то в зависимости от прав соответствующих данному юзеру запускаете exe №1 или exe №2...
ЗЫ. как самому-то постить не надоело? скоро третью страницу начнешь smile 

Автор: Anatom 7.4.2009, 11:31
Цитата(Kbl4AH @  7.4.2009,  11:11 Найти цитируемый пост)
ЗЫ. как самому-то постить не надоело? скоро третью страницу начнешь 


если вы профессионалы и мозг у вас шарит в програмном направелние, то я во первых ни когда с этим не встречался, а во вторых сразу не могу разобраться

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)