Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.06.20;
Скачать: [xml.tar.bz2];

Вниз

Аутентификация   Найти похожие ветки 

 
explorer   (2002-06-05 10:42) [0]

Мастера!
Мне надо в приложении сделать аутентификацию пользователей.
Чтобы разграничить права.
Посоветуйте, как это лучше воплотить?
Желательно пример или ссылочку.


 
Игорь Шевченко   (2002-06-05 10:46) [1]

Положиться на Windows :-)


 
Nikolay M.   (2002-06-05 13:51) [2]

1) для начала завести список логинов пользователей с паролями, причем хранить не сами пароли, а их хеши и хранить этот список в недоступном юзерам месте, например в БД, в которой существует нормально сделанное разграничение доступа к данным (не Парадокс, конечно :)) или в хорошо закодированном файле (хотя при желании все вскрывается)
2) я для каждого пользователя хранил строку типа "YNNYYNY" - соответственно разрешено право (Yes) на n-е действие или запрещено (No).
3) При запуске программы запросить логин/пароль, сравнить хеш введенного пароля с хешем из списка. Ну, а при показе формы уже считать строчку "YNNYYNY" и разрешить/запретить кнопки в зависимости от данных прав - дело техники.

В принципе просто как вариант, у меня это работает, не жалуюсь.


 
Explorer   (2002-06-05 15:05) [3]

>Nikolay M. ©
Использую MSSQL.
Можно, как нибудь, когда происходит конект к базе, из окна авторизации БД извлечь логин пользователя?


 
Игорь Шевченко   (2002-06-05 15:09) [4]

MSSQL, насколько мне известно, позволяет подключаться к базе с текущим пользователем, вошедшим в Windows


 
Explorer   (2002-06-05 15:31) [5]

Ну да, это если в настройках БД поставить аутентификацию средствами Windows. Просто мен сисадмин сказал, чтобы пользователи использовали аутентификацию БД. А тогда мне прийдется делать две авторизации одна БД, вторая, как советует Nikolay M.
Или можно как-нибудь по-другому все это сделать?


 
Игорь Шевченко   (2002-06-05 15:33) [6]

Может, у MSSQL есть какая-то функция, которая возвращает текущего подключенного пользователя. Спросите на форуме по базам данных здесь же


 
Кулюкин Олег   (2002-06-05 15:50) [7]

SUSER_NAME возвращает имя пользователя MS SQL.
Еще есть хорошая функция SUSER_ID.

Я не заморачивался с проверкой паролей, использовал аутентификацию самого MS SQL, а в своей таблице хранил права пользователей (пользователя определял по SUSER_ID).


 
Nikolay M.   (2002-06-05 15:53) [8]

А у тебя пользователь может вводить логин\пароль к базе?! Зачем? Если используешь обычные дельфевые компоненты, то в TDatabase прописываешь логин-пароль к БД и LoginPromt ставишь в False, а уже с пользователя запрашиваешь его персональный логин, который используется для входа в твою программу, не имеющий ничего общего с коннектом к БД. А вот уже эти логины храни под MSSQL, например, в формате:
CREATE TABLE User (ID INTEGER, Login CHAR(50), PasswordHash CHAR(50), Grant CHAR(50))
и при запуске проги спрашивай с юзера его логин с паролем и проверяй наличие пары логин/хеш_функция(пароль) в этой табличке. ИМХО, не есть правильно на каждого пользователя программы создавать пользователя БД. Правда, пароль к БД тогда становится менее защищенным: часто его можно вытащить из екзешника простым текстовым редактором, находя в нем слова типа "login", "pass", "password"...


 
Explorer   (2002-06-07 06:37) [9]

Всем, большое спасибо!
Поэкспериментирую!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.06.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
3-64909
777
2002-05-25 12:40
2002.06.20
DISTINCT


7-65262
daos
2002-03-22 10:15
2002.06.20
Идея! К вопросу о крысе (как ее обнаружить).


3-64947
Creater
2002-05-27 17:32
2002.06.20
Работа с IBX


1-65004
shane54
2002-06-08 14:10
2002.06.20
Вопрос не по теме...


1-65051
Beckett
2002-06-09 21:57
2002.06.20
TLabel.Alignment





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский