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