Алгоритм такой:
- При загрузке формы, подтягиваю в ComboBox все логины пользователей, запросом Select Login from User;
- Пользователь выбирает из ComboBox'а свой логин
- Вводит пароль
- Нажимает кнопку "Вход"
- Идет проверка пароля и логина на валидность, если логин и хеш пароля совпадают то переходим к следующему шагу
- После чего отправляем команду запроса id пользователя: Select id_User from User where Login='" + CurrentUser.text + "' and Password=(" + password + ");
- При получении id пользователя пишем его в глобальную переменную
При необходимости id пользователя можно передавать другим формам.
Моя реализация:
В программе реализовано 3 модуля для разных групп пользователей (3 разных формы и функционала: Договоры, Входящие документы, Финансовые документы) при авторизации, передаю id пользователя в нужную форму для дальнейшей работы с БД.
Возможно не правильно понял твой вопрос... если что то не то написал пиши подскажу...
Данной прогой пользуются более 90 человек, на авторизации "дыр" не наблюдалось...
В ближайшее время думаю обновить авторизацию до ЭЦП или хотя бы до сертификатов
пример моей реализации из WinForm: https://yadi.sk/i/kDwbitqlhPzoM
CurrentUser подтягиваю из поля "Логин" после чего шлю в БД следующий запрос: Select id_User from User where Login='" + CurrentUser.text + "' and Password=(" + password + ")
password - записан хеш функцией из поля "пароль"
после чего id_User записываю в переменную и в случае чего юзаю ее.