![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Авторизация [D7, XP]
Cannon © (2010-06-08 14:06:00)Здравствуйте. Подскажите пожалуйста, как по правильному производить авторизацию в программе. Сейчас я делаю отдельную форму куда юзер вводит данные авторизации, под этими данными коннекчусь к БД, затем если соединение установлено, скрываю форму авторизации и запускаю главное окно. В некоторых случаях, когда ОС виснет, у меня форма авторизации не скрывается и запускается главное окно, редко но бывает. А как по правильному делать все это дело? Спасибо.
pest (2010-06-08 15:01:00) [41]
> Даже пусть одна таблица и что?
неужели с логикой все так сложно??
если речь идет об ограничении доступа к программе пользователей, которые будут использовать одни и те же данные, то никакие userid не нужны конечно. а если у каждого пользователя буду в БД свои данные, и дргие пользователя не должны иметь доступ к ним, то userid как раз в тему. особенно если там всего одна таблица и добавлять колонку не придется к сотням таблиц.
Медвежонок Пятачок (2010-06-08 15:00:00) [42]один технологический логин к серверу + система логинов и ролей в БД это не извращение. Это один из возможных способов разграничения доступа.
Dennis I. Komarov (2010-06-08 15:00:00) [43]
> Cannon (08.06.10 14:54) [15]
Если нет трехзвенной архитектуры, используй средства СУБД.
Anatoly Podgoretsky (2010-06-08 15:00:00) [44]Пишешь на другом языке, а совет по Дельфи.
Anatoly Podgoretsky (2010-06-08 14:58:00) [45]> pest (08.06.2010 14:53:14) [14]
Тебе неизвестно, но тем не менее говоришь, так как будто известно и
предлагаешь извращение.
Dennis I. Komarov (2010-06-08 14:57:00) [46]
> может там всего одна таблица в базе, тогда userid не помешает
> никак. а может там стоит создавать под каждого юзера свою
> БД. а может под каждого юзера таблицы с префиксами свои.
> ..
Бред, не зависимо от функций программы.
> о каком коверкании может идти речь, если даже структура
> не известа
Даже пусть одна таблица и что?
Cannon (2010-06-08 14:54:00) [47]Всем спасибо. Решил сделать как посоветовал Медвежонок Пятачок.
> Цель (задача) какая? Или ты думаешь, что есть волшебная
> таблетка?
Я же написал цель. За меня ничего писать не надо, и таблеток волшебных не нужно. Да и пишу я на другом языке а не в Delphi. Мне нужно узнать как авторизацию лучше всего организовать, от более опытных людей.
pest (2010-06-08 14:53:00) [48]
> Это как же надо исковеркать БД
еще раз повторюсь, что нам не известно что делает программа. может там всего одна таблица в базе, тогда userid не помешает никак. а может там стоит создавать под каждого юзера свою БД. а может под каждого юзера таблицы с префиксами свои...
о каком коверкании может идти речь, если даже структура не известа
pest (2010-06-08 14:50:00) [49]да и велосипед, рас я его повторно изобрел, был предназначен не для тех, кто о нем уже давно знает, а для тех, у кого вызывает затруднения
> А как по правильному делать все это дело?
Dennis I. Komarov (2010-06-08 14:50:00) [50]
> Anatoly Podgoretsky © (08.06.10 14:45) [9]
Это не велочсипед, это что-то более страшное...
> pest © (08.06.10 14:42) [6]
> во всех таблицах, которые используют юзеры добавил бы колонку
> с userid.
Это как же надо исковеркать БД
программер (2010-06-08 14:49:00) [51]запустить скрытой главную форму, создать авторизационную форму, при валидности данных уничтожить авторизационную форму и сделать видимой главную форму.
pest (2010-06-08 14:46:00) [52]2Anatoly Podgoretsky
при ответе на сарказм одного пользователя, получил от другого...
Anatoly Podgoretsky (2010-06-08 14:45:00) [53]
> pest © (08.06.10 14:42) [6]
Велочсипедостроитель.
Dennis I. Komarov (2010-06-08 14:44:00) [54]
> пароли можно в хэше держать
Не можно, а нужно.
Anatoly Podgoretsky (2010-06-08 14:42:00) [55]> Cannon (08.06.2010 14:06:00) [0]
Цель (задача) какая? Или ты думаешь, что есть волшебная таблетка?
pest (2010-06-08 14:42:00) [56]я вообще паролями к базе не разбрасываюсь.
я бы создал один пароль к бд, создал бы в бд таблицу с юзерами (логин, пароль, id и тд).
во всех таблицах, которые используют юзеры добавил бы колонку с userid.
и при пользовании того или иного пользователя программой делал бы WHERE userid=CurenUserID.
а таблица с пользователями никому не доступна из программы.
мы не знаем какой сложности и серьезности должна быть программа. в большинстве случаев хранить пароли в базе в недоступной для всех таблице это нормально. иначе где ему их еще хнранить? плюс если страшно есть функции хеширования.Self пароли можно в хэше держать.
Dennis I. Komarov (2010-06-08 14:37:00) [57]Хранить пароли - недопустимо. Для этого специальные необратимые функции придумали.
pest (2010-06-08 14:32:00) [58]2Dennis I. Komarov
сарказм непонятен
Dennis I. Komarov (2010-06-08 14:29:00) [59]
> храни в базе все логины и пароли.
"Ага, и маму в дом. Только мамы нам там и не хватало" (C)
Медвежонок Пятачок (2010-06-08 14:25:00) [60]Создаем главную форму.
в ОнКриэейт посылаем себе пользовательское сообщение.
в обработчике создаем модальную форму входа.
при ее закрытии если mrOk получаем данные введенные юзером.
подключаемся. если все ок, то все ок.
если нет, то нет. повторяем.