Запоминание пароля при входе (постановка)
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) |
||
| Строка 9: | Строка 9: | ||
Здесь <db_alias> -- псевдоним базы данных из выпадающего списка зарегистрированных баз данных. В папке будут располагаться строковые параметры, где имя параметра соответствует имени пользователя (логину), а значение параметра -- пароль в зашифрованном виде. Для шифрования использовать библиотеку [http://www.citforum.ru/security/articles/defense/ CryptoAPI]. | Здесь <db_alias> -- псевдоним базы данных из выпадающего списка зарегистрированных баз данных. В папке будут располагаться строковые параметры, где имя параметра соответствует имени пользователя (логину), а значение параметра -- пароль в зашифрованном виде. Для шифрования использовать библиотеку [http://www.citforum.ru/security/articles/defense/ CryptoAPI]. | ||
| + | |||
| + | При формировании имени папки следует использовать глобальную строковую константу [[ClientAccessRegistrySubKey]]. | ||
Возможно в будущем понадобиться кроме зашифрованного пароля хранить дополнительную информацию. Предлагается перед шифрованием дописывать в начало строки пароля два символа -- номер версии: 01, 02, 03, и т.д. А при расшифровке отбрасывать их. | Возможно в будущем понадобиться кроме зашифрованного пароля хранить дополнительную информацию. Предлагается перед шифрованием дописывать в начало строки пароля два символа -- номер версии: 01, 02, 03, и т.д. А при расшифровке отбрасывать их. | ||
Версия 20:20, 17 сентября 2007
Как видно из этой дискуссии при работе с Гедымином одного пользователя в локальном режиме, а также при работе одного пользователя с большим количеством зарегистрированных баз данных неудобно помнить и постоянно вводить пароль.
Предлагается следующее:
- Добавить в диалог ввода пароля (TdlgSecLogIn) чек-бокс "Запомнить пароль".
- Если чек-бокс установлен, то после успешного подключения к базе данных сохранять пароль в зашифрованном виде в системном реестре в папке с именем:
HKEY_CURRENT_USER\SOFTWARE\Golden Software\Gedemin\Client\CurrentVersion\Access\<db_alias>
Здесь <db_alias> -- псевдоним базы данных из выпадающего списка зарегистрированных баз данных. В папке будут располагаться строковые параметры, где имя параметра соответствует имени пользователя (логину), а значение параметра -- пароль в зашифрованном виде. Для шифрования использовать библиотеку CryptoAPI.
При формировании имени папки следует использовать глобальную строковую константу ClientAccessRegistrySubKey.
Возможно в будущем понадобиться кроме зашифрованного пароля хранить дополнительную информацию. Предлагается перед шифрованием дописывать в начало строки пароля два символа -- номер версии: 01, 02, 03, и т.д. А при расшифровке отбрасывать их.
Считывание пароля
Считывание, расшифровку и подстановку пароля следует выполнять при выборе базы данных из списка и при вводе (выборе) имени пользователя.