|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Авторизация пользователей
Здравствуйте!
Вопрос: Надо сделать авторизацию на главной форме для входа в программу! Есть два пользователя - Администратор-пороль, Продавец-пороль! И как это будет в Access, в таблице поле Администратор-пороль, Продавец-пороль? Вообщем, пожалуйста отпишите код на примере с названием таблицы если это надо! И вы мне очень поможете Заранее спасибо! |
#2
|
||||
|
||||
делаешь таблицу на 3 поля (остальные на твоё усмотрение)
1. Автоинкремент 2. Логин 3. Пароль Делаешь форму для ввода логина и пароля и создаешь её перед главной форме а дальше уже проверка на правильность Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#3
|
|||
|
|||
Вообщем, все сделал сам! Программная авторизация без какой либо базы для двух пользователей! Если кому надо то вот код
PHP код:
|
#4
|
|||
|
|||
Цитата:
Врятли такой код кому понадобится, вообще, если бы у меня хоть один программист подобное написал, я бы его уволил)) |
#5
|
|||
|
|||
Asinkrit Покажи как надо.
|
#6
|
|||
|
|||
Цитата:
Легко) Вырезки из одного проекта (база ms access): во первых, перед запуском приложения, надо вывести сплеш окно для ввода логина и пароля, и если в базе таковые имеются, то приложение стартует, иначе нет. Файл проекта: Код:
Application.Initialize; Application.CreateForm(TDM, DM); DM.DBPath:=ExtractFilePath(Application.ExeName)+'_Garanties.mdb'; FKSplash := TFKSplash.Create(Application); FKSplash.Show; FKSplash.Update; while not FKSplash.Going do Application.ProcessMessages; if FKSplash.Stop then begin DM.Free; FKSplash.Hide; FKSplash.Free; end else begin FKSplash.Hide; FKSplash.Free; // в этом месте создание форм и модулей Application.Run; end; В дата модуле, подключение и проверка на наличие юзера: Код:
function TDM.ConnectToDB: boolean; begin try ABase.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ FDBPath+';Mode=ReadWrite;Persist Security Info=False;Jet OLEDB:Database Password=19473396'; ABase.Connected:=true; finally Result:=ABase.Connected; end; end; function TDM.GetUserID(const aLogin, aPassword: TStr50): Integer; begin with QuerrySQL do try if active then close; SQL.Text:='select user_id, user_FIO, user_is_admin from users '+ 'where user_login = '+QuotedStr(aLogin)+' and user_password = '+ QuotedStr(aPassword); Open; Last; First; if FieldByName('user_id').AsInteger > 0 then begin Result:=FieldByName('user_id').AsInteger; FUserFIO:=FieldByName('user_FIO').AsString; FIsAdmin:=FieldByName('user_is_admin').AsBoolean; end else begin Result:=0; FUserFIO:=''; end; if active then close; except Result:=0; FUserFIO:=''; end; FUserID:=Result; end; В сплеш форме, проверяем на введенные данные: Код:
if DM.GetUserID(dxEdit1.Text,dxMaskEdit1.Text) = 0 then StatusLabel.Caption:='Неверный логин или пароль...' else begin FGoing := true; FStop := false; end; Или если нажата кнопка отмена, то Код:
FStop:=true; FGoing:=true; Вообщем то все просто) Последний раз редактировалось Asinkrit, 27.11.2009 в 16:26. |
#7
|
||||
|
||||
Цитата:
Т.е. имя и пароль строго фиксированы...для простейшей защиты от родителей подойдет и так, но не более... Поступи по примеру Asinkrit храни данные о пароле и имени в базе данных...еще их можно хранить в реестре или файле...при этом желательно (и настоятельно) хоть немного зашифровать имя и пароль...и не хранить их в явном виде... Не обязательно выводить сплэш (хотя с ним красивее) для ввода пароля...можно и обычное модальное окно с 2-мя полями ввода и 2-мя кнопками... В начале был Бит, потом Байт и только потом появилось Слово... |
#8
|
||||
|
||||
Абсолютно согласен с Asinkrit.
Так и правельнее, и удобнее, и красивее Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#9
|
||||
|
||||
Ну во-первых, если делать систему доступа, то нужно определиться с привилегиями.
Во-вторых, хранить пароли и логины в виде хэшей и сравнивать хэш от хэша Почему нужны привелегии? Ибо если какой-нить продаван запустит в магазин товарища с отладчиком, то при простой проверке, можно заменить соответствующий байтик и получить доступ. Если есть система привилегий, то это сделать значительно сложнее Хорошо написанная программа не требует документации ICQ 9-184-668. |
#10
|
|||
|
|||
Все прочитал, объясняю! По задумке программы у меня всего два пользователя! Это Администратор и продавец! Еще каких либо пользователей не планируется, так что делать в БД таблицу на Пользователей нет смысла! К тому же, настройка подключения базы у меня делает программа, так что еще поэтому отпадает БД пользователей!
Поле пороль зашифрован звездочками, думаю этого будет достаточно! Темболее программа пишется не для большого предприятия |
#11
|
|||
|
|||
И вообще, если говорить на счет безопасности какой-то! То есть вариант сделать чтобы через каждый месяц выдавал сообщения о смене пороля! Вообщем смотря для какой программы делаешь защиту..и сколько в ней будет работать пользователей! Вообщем как то так
|
#12
|
||||
|
||||
Цитата:
Как вариант, предлагаю тебе сделать формы с которыми работает продавец и формы с которыми работает администратор, и при проверке пароля соответственно их и показывать. А звездочками пароль не шифруеться . Это он так отображаеться в системе. Храни пароли в файле из двух строк - 1-я строка - это хэш пароля админа, а 2-я - хэш пароля продавца. Тогда система буден защищена надежнее. Хорошо написанная программа не требует документации ICQ 9-184-668. |
#13
|
|||
|
|||
Здравствуйте! Еще вопрос возник по авторизации! На всякий повторяю код моей авторизации
PHP код:
Вопрос: Мне надо сделать чтобы я мог сменить пороль Администратора и Продовца. Также логин и пороль должен записыватся в текстовый файл. Пожалуйста! Знающим, напишите код! Заранее спасибо! |
#14
|
|||
|
|||
Воспользуйся моим примером, который я давал выше, храни пароли в БД. То что ты написал, извини конечно, но это полная бредятина, кстати, половину строк можно выкинуть из твоего кода, и при этом все будет работать)
|
#15
|
|||
|
|||
Зачем мне БД скажи? Если у меня существуют только два пользователя Администратор и Продавец! Далее, Настройка пути к БД происходит в самой программе после авторизации так что БД отпадает! БД нужно было бы для того если пользователей было бы очень много! Если бы эта программа была многопользовательской! Думаю суть понял..
|