Vb.net храните значение администратора в настройках проекта
Всем привет,
Может ли кто-нибудь сказать мне, как сохранить правильное значение администратора в настройках проекта, когда администратор входит в программу, чтобы сохранить свою запись в проекте до тех пор, пока он не выйдет из системы или не выйдет из программы.
Важно потерять запись обратно в 0 при выходе из программы или выходе из системы, потому что больше людей будут использовать один и тот же компьютер.
Вот мой код для входа в систему:
Public Sub Loggin() If Login.txtUsername.Text = "" Or Login.txtPassword.Text = "" Then MsgBox("Please enter Username and Password!") Login.txtUsername.Focus() Else Try With cmd conn.Open() .Connection = conn .CommandText = "Select * From Accounts WHERE Accname = @GetLogin and Accpass = @GetPass" .Parameters.AddWithValue("@GetLogin", Login.txtUsername.Text) If Encr >= 1 Then .Parameters.AddWithValue("@GetPass", Encrypt.EncryptPassword(Login.txtPassword.Text)) ElseIf Encr = 0 Then .Parameters.AddWithValue("@GetPass", Login.txtPassword.Text) End If 'Starting The Query Adapter.SelectCommand = cmd Reader = cmd.ExecuteReader .Parameters.Clear() 'Validate User If Reader.HasRows = 0 Then 'Login.ProgressBar1.Value = 0 Login.txtUsername.Text = "" Login.txtPassword.Text = "" Login.txtUsername.Focus() Return Else Dim authorityid = 0 While Reader.Read() authorityid = Reader.Item("Admin") End While If authorityid = 1 Then 'Login Admin User 'AdminMenu.Show() Login.Close() ElseIf authorityid = 0 Then 'Login Normal User MainCP.Show() Login.Close() ElseIf authorityid > 1 Then MessageBox.Show("Error in Database User Information", "Visual WMS", MessageBoxButtons.OK, MessageBoxIcon.Warning) return Else 'Login.ProgressBar1.Value = 0 Login.txtUsername.Text = "" Login.txtPassword.Text = "" Login.txtUsername.Focus() End If End If End With Catch ex As Exception MsgBox(ex.Message) 'MsgBox("Please check your Settings.ini File") Finally Reader.Close() Adapter.Dispose() cmd.Dispose() If conn IsNot Nothing Then conn.Close() End If End Try End If End Sub
Что я уже пробовал:
в проектах:
- Настройки> isAdmin boolen user false
If authorityid = 1 Then 'Login Admin User 'AdminMenu.Show() My.Settings.isAdmin = 1 Login.Close()
Richard Deeming
Вы храните пароли в виде обычного текста. Не делай этого.
Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хэширование паролей - делаем это правильно[^]
Richard Deeming
Кроме того, если вы хотите забыть значение при выходе из программы, зачем вы вообще сохраняете его в настройках? Настройки предназначены для хранения значений, которые необходимо запоминать между исполнениями вашей программы.
diablo22
потому что я хочу сохранить его в программе, потому что когда администратор войдет в систему, у него будет материал, который он может видеть только в программе, другие его не увидят :)
Richard Deeming
Есть и другие варианты хранения вещей в памяти во время работы вашей программы, которые не будут сохранены при выходе из программы.
Например, Shared
переменные.