powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Login form
11 сообщений из 11, страница 1 из 1
Login form
    #34185571
s_akmal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как сделать чтобы в начальной форме, которая состоит из двух объектов (1. Combo, 2. textbox), в combo выводились список пользователей из базы?
Это для того, чтобы не набирать имя пользователя в диалоговом окне логина, а проверить после того как пользователь выбрал имя, вводил пароль и нажал Ок
...
Рейтинг: 0 / 0
Login form
    #34185619
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
установить св-во DataSource у контрола Combobox к примеру рекордсет, в который и запихнуть выборку пользователей из базы
I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Login form
    #34185637
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно еше грузить значения для ComboBox программным путем
...
Рейтинг: 0 / 0
Login form
    #34185643
s_akmal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот код, который я использовал
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Option Explicit
Dim Cninput As ADODB.Connection
Dim adoPrimaryRS As ADODB.Recordset
Public LoginSucceeded As Boolean

Private Sub Form_Load()
Dim Sql As String, jo As String
Set adoPrimaryRS = New ADODB.Recordset
Set Cninput = New ADODB.Connection
If Cninput.State =  1  Then Cninput.Close
jo = App.Path + "\Data\Registration.mdb"
Cninput.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" + jo + ";Persist Security Info=False"
Cninput.CursorLocation = adUseClient
Cninput.Open
Sql = "select username from users order by username"
If adoPrimaryRS.State =  1  Then adoPrimaryRS.Close
adoPrimaryRS.Open Sql, Cninput, adOpenStatic, adLockOptimistic
Set Combo1.DataSource = adoPrimaryRS
End Sub
...
Рейтинг: 0 / 0
Login form
    #34186601
bac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В вашей форме перечислен список пользователей.
1. Это противоречит принципам безопасности. Т.е. для закрытой системы пользователю не должен быть известен список всех пользователей. В идеале только свой.
2. Если у Вас используются пользователи базы данных, а не таблица с именами пользователей, то нужно предпринимать специальные действия, например присоединяться к БД каким-то пользователем которому разрешены права на просмотр списка пользователей.
...
Рейтинг: 0 / 0
Login form
    #34188965
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bacВ вашей форме перечислен список пользователей.
1. Это противоречит принципам безопасности. Т.е. для закрытой системы пользователю не должен быть известен список всех пользователей. В идеале только свой.
2. Если у Вас используются пользователи базы данных, а не таблица с именами пользователей, то нужно предпринимать специальные действия, например присоединяться к БД каким-то пользователем которому разрешены права на просмотр списка пользователей.
согласен
...
Рейтинг: 0 / 0
Login form
    #34189006
s_akmal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас, в приведенном выше коде, чего неправильного??
...
Рейтинг: 0 / 0
Login form
    #34189057
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В коде все правильно.
Код: plaintext
Persist Security Info=False
Я бы не стал делать, т.к. любой пользователь сможет пройти по
Код: plaintext
\Data\Registration.mdb
и посмотреть все что ему нужно.
А bac правильно тебе сказал. Есть смысл прислушаться.
...
Рейтинг: 0 / 0
Login form
    #34189879
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя хакнуть mdb файл очень просто, если данные не зашифрованы,
я например делаю так обычно,
в таблице пользователей все пароли зашифрованы DES алгоритмом (есть например много компонентов готовых, классов для шифрации), и для каждого поля есть поле checksum (контрольная сумма)., и для важных таблиц тоже есть поле checksum.
(опционально) затем в отдельной таблице checksum'ы от всех таблиц, т.е. сколько записей в каждой таблице и что-то наподобие crc.
Затем при загрузке, прога контролирует целостность базы данных
И еще почитать методы защиты самой mdb, т.е. применение файла рабочей группы, защита таблцы, защита в самой mdb и т.д. есть много методов
...
Рейтинг: 0 / 0
Login form
    #34190048
s_akmal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так как когда пытался создать форму для отображения данных с access, программа выдала ошибка, что нераспознанный тип базы данных, я экспортировал данные в таблицу dBASE (user.dbf).
Таблица user.dbf состоит из три поля: uid, username, pass.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Private Sub Form_Load()
On Error GoTo err_ms
Dim Jo As String, sql_str As String
Dim conn1 As adodb.Connection
Dim adoPrimaryRS As adodb.Recordset

Set conn1 = New adodb.Connection
Set adoPrimaryRS = New adodb.Recordset
Jo = App.Path + "\data\USER.DBF"
sql_str = "PROVIDER=MSDASQL;dsn=Файлы dBASE;uid=;pwd=;database=" + Jo + ";"
conn1.Open sql_str
adoPrimaryRS.Open "select USERNAME from USER", conn1, adOpenStatic, adLockOptimistic
Set Combo1.DataSource = adoPrimaryRS
Exit Sub
err_ms:
MsgBox Err.Description
End Sub
Сейчас моя задача состоит в том, чтобы в начальном поле пользователь выбрал из списка имя, но в список ничего не вышло. Если в коде все правильно то где еще может быть ошибка?? Сама программа не выводит ошибку
...
Рейтинг: 0 / 0
Login form
    #34192034
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программным путем не пробовали заполнять?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Combo1.Clear
If adoPrimaryRS.EOF Then
       Combo1.ListIndex=- 1 
Else
       adoPrimaryRS.MoveFirst
       Do While Not adoPrimaryRS.EOF
               Combo1.AddItem adoPrimaryRS.Fields("UserName").Value
               adoPrimaryRS.MoveNext
       Loop
       Combo1.ListIndex= 0 
End If
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Login form
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]