| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > по паролю зайти в нужное приложение |
| Автор: Anatom 6.4.2009, 18:37 |
| здравствуйте, не подскажите как быть у меня есть база данных на sql 2000 и клиенское приложение сделанное на делфи, оно состоит из двух частей: приложение менеджера и приложение диспечера, не подскажите как при вводе пароля в делфи открывалось нужное приложение. подскажите пожалуйста не знаю с чего начать? |
| Автор: Keeper89 6.4.2009, 20:42 |
| задание сформулируйте по-человечески |
| Автор: Anatom 6.4.2009, 20:59 | ||
две разные программы, я имею ввиду два разных ехе. Добавлено через 3 минуты и 45 секунд
Не знаю будет ли это почеловечески. При запуске появляеться окно в которое ты вводишь логин и пароль и в зависимости от введенного пароля и логина будет выводиться приложение менеджера или диспечера. Какие ресурсы использую описал выше. |
| Автор: 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: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 |
| ставлю на Anatom'а |
| Автор: Anatom 6.4.2009, 22:31 | ||
| эту инфу можно узнать правой кнопкой мыши на табл данные которых я использую в своих приложениях, так? Добавлено через 1 минуту и 43 секунды
лутше бы не смеялись, а помогли Добавлено через 3 минуты и 43 секунды а как связать поля ввода логина и пароля из приложения делфи с данными логина и пароля в бд |
| Автор: mopsa 6.4.2009, 22:37 | ||
не понял |
| Автор: Anatom 6.4.2009, 22:40 |
| я имею ввиду как мне сейчас узнать какой логин и пароль у бд, и как его можно изменить или задать? |
| Автор: Keeper89 6.4.2009, 23:53 |
| 2 страницы вот этого -> Anatom: Задание ясно - 2 EXE для 2 групп пользователей на одной БД (зачем нужно 2 приложения все-таки не пойму, а если их 2 и полномочия уже разделены зачем какой-то ввод пароля, если можно для каждой группы развернуть свою копию программы...). Как я понимаю, вам нужен пример программной реализации. Если да, то напишите по пунктам каких действий. З.Ы. Как вариант, почему не разделять полномочия средствами самой СУБД (кстати какую используете)? |
| Автор: Anatom 7.4.2009, 10:39 | ||||
использую Sql Server 2000 Добавлено через 14 минут и 50 секунд
Может я не так сам понял, но мне подсказали что ввод пароля и логина нужен для аутентификации пользователя, т.е. тот же самый менеджер не мог зайти в ехе диспечеру и наоборот. На счет реализаци тогда получаеться что мне не нужно сравнивать пароль и логин с паролем и логином в sql, а просто реализовать проверку пароля и пользователя на делфи. И вот эту штуку я не знаю как сделать подскажите пожалуйста? |
| Автор: Anatom 7.4.2009, 11:02 |
| ой |
| Автор: Kbl4AH 7.4.2009, 11:11 |
| Anatom, да что непонятно? Делаете форму на которой 2 едита... в один вводите логин, в другой пароль... делаете запросе к таблице базы, в которорой у вас аутентификационные данные пользователей хранятся... если логин и пароль корректны, то в зависимости от прав соответствующих данному юзеру запускаете exe №1 или exe №2... ЗЫ. как самому-то постить не надоело? скоро третью страницу начнешь |
| Автор: Anatom 7.4.2009, 11:31 | ||
если вы профессионалы и мозг у вас шарит в програмном направелние, то я во первых ни когда с этим не встречался, а во вторых сразу не могу разобраться |